|
17768
|
NULL
|
0
|
2026-05-11T10:32:21.418995+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778495541418_m2.jpg...
|
Firefox
|
SevenShores\Hubspot\Exceptions\BadRequest: Client SevenShores\Hubspot\Exceptions\BadRequest: 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 — Work...
|
True
|
jiminny.sentry.io/issues/7007366572/?environment=p jiminny.sentry.io/issues/7007366572/?environment=production&environment=production-eu&project=82419&query=is%3Aunresolved&referrer=issue-stream&sort=freq...
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
New Tab
Close tab
Jy 20820 es reindex stream model New Tab
Close tab
Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app
Close tab
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
Close tab
SevenShores\Hubspot\Exceptions\BadRequest: 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
Close tab
New Tab
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Customize sidebar
Skip to main content
Skip to main content
Toggle organization menu
Issues
Issues
Explore
Explore
Dashboards
Dashboards
Monitors
Monitors
Settings
Settings
Try Business
What's New
Help
[EMAIL]
Issues
Expand
Feed
Feed
Errors & Outages
Errors & Outages
Breached Metrics
Breached Metrics
Warnings
Warnings
User Feedback
User Feedback
Autofix
Autofix
Recently Run
Recently Run
All Views
All Views
Configure
Alerts Moved
Alerts
Moved
Issues
Issues
View Project Details
APP-1EED
Ask Seer
Ask Seer
/
Give Feedback
SevenShores\Hubspot\Exceptions\BadRequest
View events
Events (total)
Users (90d)
Level: Error
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":"019e1522-8 (truncated...)
17K
0
Ongoing
/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php in Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService::executeSearchRequest
Resolve
Resolve
More resolve options
Archive
Archive
Archive options
Subscribe
Share
More Actions
Priority
Modify issue priority
High
Assignee
Modify issue assignee
Lukas Kovalik
production, production-eu
production, production-eu
90D
90D
Add a search term
Add a search term
Close sidebar
Toggle graph series - Events
Events
17K
Toggle graph series - Users
Users
0
release 68% 874599
release
68%
874599
environment 92% production
environment
92%
production
runtime 94% php 8.3.30
runtime
94%
php 8.3.30
runtime.name 100% php
runtime.name
100%
php
View all tags
View all tags
Select issue content
Events
Previous Event
Next Event
First
First
First
Latest
Latest
Latest
Recommended
Recommended
View More Events...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"New Tab","depth":4,"bounds":{"left":0.0,"top":0.0518755,"width":0.016123671,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.0006648936,"top":0.0518755,"width":0.004986702,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.08459697,"width":0.016123671,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.0006648936,"top":0.08459697,"width":0.004986702,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira","depth":4,"bounds":{"left":0.0,"top":0.11731844,"width":0.016123671,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.0006648936,"top":0.11731844,"width":0.004986702,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: 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","depth":4,"bounds":{"left":0.0,"top":0.15003991,"width":0.016123671,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.0006648936,"top":0.15003991,"width":0.004986702,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.0028257978,"top":0.18435754,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.0,"top":0.8547486,"width":0.016123671,"height":0.0311253},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.0,"top":0.8858739,"width":0.016123671,"height":0.027533919},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.0,"top":0.9134078,"width":0.016123671,"height":0.02793296},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.0,"top":0.9413408,"width":0.016123671,"height":0.027533919},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.0,"top":0.9688747,"width":0.016123671,"height":0.0311253},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to main content","depth":8,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to main content","depth":9,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Toggle organization menu","depth":11,"bounds":{"left":0.022938829,"top":0.059856344,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Issues","depth":12,"bounds":{"left":0.017453458,"top":0.09736632,"width":0.021609042,"height":0.050678372},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issues","depth":14,"bounds":{"left":0.023105053,"top":0.13048683,"width":0.010305851,"height":0.009976057},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Explore","depth":12,"bounds":{"left":0.017453458,"top":0.14804469,"width":0.021609042,"height":0.050678372},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Explore","depth":14,"bounds":{"left":0.022273935,"top":0.1811652,"width":0.011968086,"height":0.009976057},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Dashboards","depth":12,"bounds":{"left":0.017453458,"top":0.19872306,"width":0.021609042,"height":0.05027933},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Dashboards","depth":14,"bounds":{"left":0.01861702,"top":0.23184358,"width":0.019281914,"height":0.009976057},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Monitors","depth":12,"bounds":{"left":0.017453458,"top":0.2490024,"width":0.021609042,"height":0.050678372},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Monitors","depth":14,"bounds":{"left":0.021276595,"top":0.2821229,"width":0.013962766,"height":0.009976057},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Settings","depth":12,"bounds":{"left":0.017453458,"top":0.29968077,"width":0.021609042,"height":0.050678372},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Settings","depth":14,"bounds":{"left":0.02144282,"top":0.33280128,"width":0.013630319,"height":0.009976057},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Try Business","depth":10,"bounds":{"left":0.022938829,"top":0.88667196,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"What's New","depth":10,"bounds":{"left":0.022938829,"top":0.9114126,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Help","depth":10,"bounds":{"left":0.022938829,"top":0.93615323,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"lukas.kovalik@jiminny.com","depth":10,"bounds":{"left":0.022938829,"top":0.9680766,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Issues","depth":12,"bounds":{"left":0.0,"top":0.066640064,"width":0.014461436,"height":0.012370312},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Expand","depth":12,"bounds":{"left":0.025099734,"top":0.061452515,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Feed","depth":14,"bounds":{"left":0.0,"top":0.10055866,"width":0.058843084,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Feed","depth":16,"bounds":{"left":0.0,"top":0.10734238,"width":0.010638298,"height":0.012370312},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Errors & Outages","depth":14,"bounds":{"left":0.0,"top":0.14046289,"width":0.058843084,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Errors & Outages","depth":16,"bounds":{"left":0.0,"top":0.14724661,"width":0.03673537,"height":0.012370312},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Breached Metrics","depth":14,"bounds":{"left":0.0,"top":0.16759777,"width":0.058843084,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Breached Metrics","depth":16,"bounds":{"left":0.0,"top":0.17438148,"width":0.037898935,"height":0.012370312},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Warnings","depth":14,"bounds":{"left":0.0,"top":0.19473264,"width":0.058843084,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Warnings","depth":16,"bounds":{"left":0.0,"top":0.20151636,"width":0.019946808,"height":0.012370312},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"User Feedback","depth":14,"bounds":{"left":0.0,"top":0.22186752,"width":0.058843084,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"User Feedback","depth":16,"bounds":{"left":0.0,"top":0.22865124,"width":0.032081116,"height":0.012370312},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Autofix","depth":12,"bounds":{"left":0.0,"top":0.26177174,"width":0.058843084,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Autofix","depth":15,"bounds":{"left":0.0,"top":0.26855546,"width":0.016289894,"height":0.012370312},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Recently Run","depth":14,"bounds":{"left":0.0,"top":0.28731045,"width":0.058843084,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Recently Run","depth":16,"bounds":{"left":0.0,"top":0.29409418,"width":0.028922873,"height":0.012370312},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"All Views","depth":14,"bounds":{"left":0.0,"top":0.3272147,"width":0.058843084,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"All Views","depth":16,"bounds":{"left":0.0,"top":0.3339984,"width":0.019281914,"height":0.012370312},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Configure","depth":13,"bounds":{"left":0.0,"top":0.3735036,"width":0.021941489,"height":0.012370312},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Alerts Moved","depth":14,"bounds":{"left":0.0,"top":0.39225858,"width":0.058843084,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Alerts","depth":16,"bounds":{"left":0.0,"top":0.3990423,"width":0.012799202,"height":0.012370312},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Moved","depth":16,"bounds":{"left":0.016954787,"top":0.39984038,"width":0.012466756,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Issues","depth":12,"bounds":{"left":0.046043884,"top":0.06464485,"width":0.013796543,"height":0.015961692},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issues","depth":14,"bounds":{"left":0.046043884,"top":0.066640064,"width":0.013796543,"height":0.012370312},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"View Project Details","depth":13,"bounds":{"left":0.06648936,"top":0.06624102,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"APP-1EED","depth":16,"bounds":{"left":0.07446808,"top":0.066640064,"width":0.021941489,"height":0.012370312},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Ask Seer","depth":10,"bounds":{"left":0.4348404,"top":0.059856344,"width":0.04720745,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Ask Seer","depth":13,"bounds":{"left":0.44614363,"top":0.0650439,"width":0.019614361,"height":0.012370312},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":14,"bounds":{"left":0.47406915,"top":0.065442935,"width":0.0021609042,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Give Feedback","depth":11,"bounds":{"left":0.48404256,"top":0.059856344,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest","depth":13,"bounds":{"left":0.046043884,"top":0.10295291,"width":0.15359043,"height":0.017557861},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"View events","depth":13,"bounds":{"left":0.4409907,"top":0.10654429,"width":0.026097074,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Events (total)","depth":14,"bounds":{"left":0.4409907,"top":0.10654429,"width":0.026097074,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Users (90d)","depth":13,"bounds":{"left":0.47240692,"top":0.10654429,"width":0.022273935,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Level: Error","depth":15,"bounds":{"left":0.045711435,"top":0.12490024,"width":0.02443484,"height":0.012370312},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"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\":\"019e1522-8 (truncated...)","depth":14,"bounds":{"left":0.049035903,"top":0.12490024,"width":0.5561835,"height":0.012370312},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"17K","depth":13,"bounds":{"left":0.45678192,"top":0.12210695,"width":0.010305851,"height":0.017557861},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":13,"bounds":{"left":0.49052528,"top":0.12210695,"width":0.004155585,"height":0.017557861},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ongoing","depth":14,"bounds":{"left":0.046043884,"top":0.14046289,"width":0.018118352,"height":0.012370312},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php in Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::executeSearchRequest","depth":13,"bounds":{"left":0.0709774,"top":0.14046289,"width":0.3726729,"height":0.012370312},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Resolve","depth":12,"bounds":{"left":0.046043884,"top":0.16719872,"width":0.02543218,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Resolve","depth":14,"bounds":{"left":0.050033245,"top":0.17238627,"width":0.017453458,"height":0.012370312},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"More resolve options","depth":12,"bounds":{"left":0.07114362,"top":0.16719872,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Archive","depth":12,"bounds":{"left":0.0831117,"top":0.16719872,"width":0.025265958,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Archive","depth":14,"bounds":{"left":0.087101065,"top":0.17238627,"width":0.017287234,"height":0.012370312},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Archive options","depth":12,"bounds":{"left":0.10804521,"top":0.16719872,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Subscribe","depth":12,"bounds":{"left":0.1200133,"top":0.16719872,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Share","depth":12,"bounds":{"left":0.13198139,"top":0.16719872,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"More Actions","depth":12,"bounds":{"left":0.14394946,"top":0.16719872,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Priority","depth":12,"bounds":{"left":0.3984375,"top":0.17398244,"width":0.015957447,"height":0.012370312},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Modify issue priority","depth":12,"bounds":{"left":0.41572472,"top":0.17039107,"width":0.013962766,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"High","depth":17,"bounds":{"left":0.42270613,"top":0.18076617,"width":0.00880984,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Assignee","depth":12,"bounds":{"left":0.43500665,"top":0.17398244,"width":0.019780586,"height":0.012370312},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Modify issue assignee","depth":13,"bounds":{"left":0.45611703,"top":0.16999201,"width":0.03856383,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Lukas Kovalik","depth":17,"bounds":{"left":0.46459442,"top":0.17398244,"width":0.024767287,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"production, production-eu","depth":13,"bounds":{"left":0.046043884,"top":0.20949721,"width":0.07363697,"height":0.028731046},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"production, production-eu","depth":17,"bounds":{"left":0.050033245,"top":0.21628092,"width":0.059674203,"height":0.012370312},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"90D","depth":13,"bounds":{"left":0.11934841,"top":0.20949721,"width":0.023271276,"height":0.028731046},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"90D","depth":17,"bounds":{"left":0.12333777,"top":0.21628092,"width":0.00930851,"height":0.012370312},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Add a search term","depth":16,"bounds":{"left":0.15591756,"top":0.21428572,"width":0.21841756,"height":0.01915403},"on_screen":true,"help_text":"","placeholder":"Filter events…","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXComboBox","text":"Add a search term","depth":16,"bounds":{"left":0.15591756,"top":0.21428572,"width":0.21841756,"height":0.01915403},"on_screen":true,"help_text":"","placeholder":"Filter events…","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close sidebar","depth":13,"bounds":{"left":0.38264626,"top":0.20949721,"width":0.011968086,"height":0.028731046},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Toggle graph series - Events","depth":12,"bounds":{"left":0.05036569,"top":0.25818038,"width":0.021276595,"height":0.035115723},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":false,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Events","depth":15,"bounds":{"left":0.05435505,"top":0.26256984,"width":0.013297873,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"17K","depth":15,"bounds":{"left":0.05668218,"top":0.27693537,"width":0.008643617,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Toggle graph series - Users","depth":12,"bounds":{"left":0.05036569,"top":0.2980846,"width":0.021276595,"height":0.035115723},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Users","depth":15,"bounds":{"left":0.055518616,"top":0.3008779,"width":0.010970744,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":15,"bounds":{"left":0.059175532,"top":0.31524342,"width":0.0034906915,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"release 68% 874599","depth":12,"bounds":{"left":0.26695478,"top":0.25818038,"width":0.11702128,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"release","depth":14,"bounds":{"left":0.26894948,"top":0.25977653,"width":0.013962766,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"68%","depth":14,"bounds":{"left":0.34408244,"top":0.25977653,"width":0.007978723,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"874599","depth":14,"bounds":{"left":0.35339096,"top":0.25977653,"width":0.013962766,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"environment 92% production","depth":12,"bounds":{"left":0.26695478,"top":0.2725459,"width":0.11702128,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"environment","depth":14,"bounds":{"left":0.26894948,"top":0.273743,"width":0.024767287,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"92%","depth":14,"bounds":{"left":0.34408244,"top":0.273743,"width":0.007978723,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"production","depth":14,"bounds":{"left":0.35339096,"top":0.273743,"width":0.020279255,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"runtime 94% php 8.3.30","depth":12,"bounds":{"left":0.26695478,"top":0.2869114,"width":0.11702128,"height":0.0131683955},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"runtime","depth":14,"bounds":{"left":0.26894948,"top":0.28810853,"width":0.015292553,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"94%","depth":14,"bounds":{"left":0.34408244,"top":0.28810853,"width":0.007978723,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"php 8.3.30","depth":14,"bounds":{"left":0.35339096,"top":0.28810853,"width":0.019946808,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"runtime.name 100% php","depth":12,"bounds":{"left":0.26695478,"top":0.3008779,"width":0.11702128,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"runtime.name","depth":14,"bounds":{"left":0.26894948,"top":0.30247405,"width":0.027094414,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"100%","depth":14,"bounds":{"left":0.3415891,"top":0.30247405,"width":0.010472074,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"php","depth":14,"bounds":{"left":0.35339096,"top":0.30247405,"width":0.0071476065,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"View all tags","depth":12,"bounds":{"left":0.26894948,"top":0.31763768,"width":0.027094414,"height":0.01556265},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"View all tags","depth":13,"bounds":{"left":0.26894948,"top":0.31923383,"width":0.027094414,"height":0.012370312},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Select issue content","depth":13,"bounds":{"left":0.046043884,"top":0.34836394,"width":0.028922873,"height":0.025538707},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Events","depth":15,"bounds":{"left":0.050033245,"top":0.35434955,"width":0.01761968,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Previous Event","depth":13,"bounds":{"left":0.22506648,"top":0.3499601,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Next Event","depth":13,"bounds":{"left":0.234375,"top":0.3499601,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":false,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"First","depth":14,"bounds":{"left":0.24601063,"top":0.3499601,"width":0.013630319,"height":0.022346368},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"First","depth":15,"bounds":{"left":0.24601063,"top":0.3507582,"width":0.013630319,"height":0.022346368},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"First","depth":17,"bounds":{"left":0.2486702,"top":0.3567438,"width":0.00831117,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Latest","depth":14,"bounds":{"left":0.26097074,"top":0.3499601,"width":0.017121011,"height":0.022346368},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Latest","depth":15,"bounds":{"left":0.26097074,"top":0.3507582,"width":0.017121011,"height":0.022346368},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Latest","depth":17,"bounds":{"left":0.26363033,"top":0.3567438,"width":0.011801862,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Recommended","depth":14,"bounds":{"left":0.27942154,"top":0.3499601,"width":0.033410903,"height":0.022346368},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Recommended","depth":17,"bounds":{"left":0.28208113,"top":0.3567438,"width":0.028091755,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"View More Events","depth":13,"bounds":{"left":0.31416222,"top":0.3499601,"width":0.0390625,"height":0.022346368},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false}]...
|
-7429878613291946677
|
-2356157467112590118
|
visual_change
|
accessibility
|
NULL
|
New Tab
Close tab
Jy 20820 es reindex stream model New Tab
Close tab
Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app
Close tab
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
Close tab
SevenShores\Hubspot\Exceptions\BadRequest: 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
Close tab
New Tab
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Customize sidebar
Skip to main content
Skip to main content
Toggle organization menu
Issues
Issues
Explore
Explore
Dashboards
Dashboards
Monitors
Monitors
Settings
Settings
Try Business
What's New
Help
[EMAIL]
Issues
Expand
Feed
Feed
Errors & Outages
Errors & Outages
Breached Metrics
Breached Metrics
Warnings
Warnings
User Feedback
User Feedback
Autofix
Autofix
Recently Run
Recently Run
All Views
All Views
Configure
Alerts Moved
Alerts
Moved
Issues
Issues
View Project Details
APP-1EED
Ask Seer
Ask Seer
/
Give Feedback
SevenShores\Hubspot\Exceptions\BadRequest
View events
Events (total)
Users (90d)
Level: Error
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":"019e1522-8 (truncated...)
17K
0
Ongoing
/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php in Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService::executeSearchRequest
Resolve
Resolve
More resolve options
Archive
Archive
Archive options
Subscribe
Share
More Actions
Priority
Modify issue priority
High
Assignee
Modify issue assignee
Lukas Kovalik
production, production-eu
production, production-eu
90D
90D
Add a search term
Add a search term
Close sidebar
Toggle graph series - Events
Events
17K
Toggle graph series - Users
Users
0
release 68% 874599
release
68%
874599
environment 92% production
environment
92%
production
runtime 94% php 8.3.30
runtime
94%
php 8.3.30
runtime.name 100% php
runtime.name
100%
php
View all tags
View all tags
Select issue content
Events
Previous Event
Next Event
First
First
First
Latest
Latest
Latest
Recommended
Recommended
View More Events...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
17769
|
NULL
|
0
|
2026-05-11T10:32:22.028215+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778495542028_m1.jpg...
|
Slack
|
Aneliya Angelova (DM) - Jiminny Inc - 3 new items Aneliya Angelova (DM) - Jiminny Inc - 3 new items - Slack...
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
More unreads
Unreads
Threads
Huddles
Drafts & sent
1
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
curiosity_lab
engineering
general
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Aneliya Angelova
Galya Dimitrova
Petko Kashinski
Stefka Stoyanova
Vasil Vasilev...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":14,"bounds":{"left":0.51180553,"top":0.08111111,"width":0.025,"height":0.04},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":14,"bounds":{"left":0.50625,"top":0.14,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":16,"bounds":{"left":0.5138889,"top":0.19222222,"width":0.020833334,"height":0.015555556},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":14,"bounds":{"left":0.50625,"top":0.21555555,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":16,"bounds":{"left":0.5159722,"top":0.26777777,"width":0.016666668,"height":0.015555556},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":14,"bounds":{"left":0.50625,"top":0.2911111,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":16,"bounds":{"left":0.51111114,"top":0.34333333,"width":0.027083334,"height":0.015555556},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.51111114,"top":0.34333333,"width":0.0055555557,"height":0.015555556}},{"char_start":1,"char_count":7,"bounds":{"left":0.5159722,"top":0.34333333,"width":0.022222223,"height":0.015555556}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":14,"bounds":{"left":0.50625,"top":0.36666667,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":16,"bounds":{"left":0.51666665,"top":0.4188889,"width":0.015972223,"height":0.015555556},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.51666665,"top":0.4188889,"width":0.004166667,"height":0.015555556}},{"char_start":1,"char_count":4,"bounds":{"left":0.5208333,"top":0.4188889,"width":0.011805556,"height":0.015555556}}],"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":14,"bounds":{"left":0.50625,"top":0.4422222,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":16,"bounds":{"left":0.5152778,"top":0.49444443,"width":0.018055556,"height":0.015555556},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":14,"bounds":{"left":0.50625,"top":0.5177778,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":16,"bounds":{"left":0.5152778,"top":0.57,"width":0.01875,"height":0.015555556},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"More unreads","depth":17,"bounds":{"left":0.58194447,"top":0.13444445,"width":0.0875,"height":0.031111112},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Unreads","depth":21,"bounds":{"left":0.57708335,"top":0.12777779,"width":0.039583333,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":21,"bounds":{"left":0.57708335,"top":0.12777779,"width":0.036805555,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":21,"bounds":{"left":0.57708335,"top":0.12777779,"width":0.038194444,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":21,"bounds":{"left":0.57708335,"top":0.12777779,"width":0.06111111,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":21,"bounds":{"left":0.68472224,"top":0.12777779,"width":0.0055555557,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":21,"bounds":{"left":0.57708335,"top":0.12777779,"width":0.050694443,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-x-integration-app","depth":23,"bounds":{"left":0.58819443,"top":0.12777779,"width":0.09166667,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":23,"bounds":{"left":0.58819443,"top":0.12777779,"width":0.09652778,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":23,"bounds":{"left":0.58819443,"top":0.12777779,"width":0.046527777,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":23,"bounds":{"left":0.58819443,"top":0.12777779,"width":0.025694445,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":23,"bounds":{"left":0.58819443,"top":0.12777779,"width":0.038194444,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":23,"bounds":{"left":0.58819443,"top":0.12777779,"width":0.022222223,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":23,"bounds":{"left":0.58819443,"top":0.12777779,"width":0.072222225,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"curiosity_lab","depth":23,"bounds":{"left":0.58819443,"top":0.12777779,"width":0.057638887,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":23,"bounds":{"left":0.58819443,"top":0.12777779,"width":0.054166667,"height":0.007777778},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":23,"bounds":{"left":0.58819443,"top":0.14666666,"width":0.034027778,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":23,"bounds":{"left":0.58819443,"top":0.17777778,"width":0.048611112,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":23,"bounds":{"left":0.58819443,"top":0.20888889,"width":0.072916664,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.58819443,"top":0.20888889,"width":0.00625,"height":0.02}},{"char_start":1,"char_count":15,"bounds":{"left":0.59444445,"top":0.20888889,"width":0.06666667,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":23,"bounds":{"left":0.58819443,"top":0.24,"width":0.08055556,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":23,"bounds":{"left":0.58819443,"top":0.2711111,"width":0.035416666,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":23,"bounds":{"left":0.58819443,"top":0.30222222,"width":0.036805555,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"sofia-office","depth":23,"bounds":{"left":0.58819443,"top":0.33333334,"width":0.05138889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.58819443,"top":0.33333334,"width":0.0048611113,"height":0.02}},{"char_start":1,"char_count":11,"bounds":{"left":0.59305555,"top":0.33333334,"width":0.045833334,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"support","depth":23,"bounds":{"left":0.58819443,"top":0.36444443,"width":0.036111113,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":23,"bounds":{"left":0.58819443,"top":0.39555556,"width":0.05347222,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":23,"bounds":{"left":0.58819443,"top":0.42666668,"width":0.094444446,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.58819443,"top":0.42666668,"width":0.004166667,"height":0.02}},{"char_start":1,"char_count":20,"bounds":{"left":0.5923611,"top":0.42666668,"width":0.09861111,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.58819443,"top":0.5,"width":0.07847222,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"bounds":{"left":0.58819443,"top":0.5311111,"width":0.07361111,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":23,"bounds":{"left":0.58819443,"top":0.56222224,"width":0.072222225,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":23,"bounds":{"left":0.58819443,"top":0.5933333,"width":0.079166666,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":23,"bounds":{"left":0.58819443,"top":0.6244444,"width":0.055555556,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.58819443,"top":0.6244444,"width":0.00625,"height":0.02}},{"char_start":1,"char_count":12,"bounds":{"left":0.59444445,"top":0.6244444,"width":0.048611112,"height":0.02}}],"role_description":"text"}]...
|
4848263476541070057
|
-3520165028154925342
|
visual_change
|
hybrid
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
More unreads
Unreads
Threads
Huddles
Drafts & sent
1
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
curiosity_lab
engineering
general
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Aneliya Angelova
Galya Dimitrova
Petko Kashinski
Stefka Stoyanova
Vasil Vasilev
SlackFileEditViewGoHistoryWindowHelpDOCKERO ₴1DEV (docker)Lastlogin:Sun May 10 21:10:26 on ttys013₴2APP (-zsh)883Poetry could not find a pyproject.toml file in /Users/lukas or its parentsPoetry could not find a pyproject.toml file inlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ lFks a Boro pect, ton fi if sers/lukos or its parents-zshHomeDMsActivityPS$ISlacklah)# Support Daily - in 1h 28m100% C8• Mon 11 May 13:32:21ED→Describe what you are looking forJiminny ...clusticclllus1 More unreads## jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support#thank-yousthe_people_of_jimil31ovaGalyovalPetko Kashinskiã. Stefka Stoyanova€. Vasil Vasilev. Nikolay IvanovAneliya Angelova, ...8 Stoyan TanevC. VesE Lukas Kovalik y...::: Apps• ToastJira CloudGoogle Cale...Aneliya Angelova6 0• MessagesAdd canvasO Files+чuле да сс мордиnс anо viма approveTuesday, April 28th~Lukas Kova..те са някави flanky че при мен минават, ще гиоправяза деплой обаче не знамAneliya Angelova 5:14 PMзащоLukas Kovalik 5:15 PMами дали ще усепя да гледамAneliya AngelovaветеAneliya Angelovaаа разорахтеГаля каза че не се използва фичъраи няма проблем да грьмнеToday ~NewAneliya Angelova 1:24 PMЛукаш за Hubspot за синковете вече се използватази команда нали?crm: sync-hubspot-objectsMessage Aneliya Angelova+Аа...
|
17767
|
NULL
|
NULL
|
NULL
|
|
17770
|
778
|
0
|
2026-05-11T10:32:23.519546+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778495543519_m1.jpg...
|
Slack
|
Aneliya Angelova (DM) - Jiminny Inc - 3 new items Aneliya Angelova (DM) - Jiminny Inc - 3 new items - Slack...
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
Home
Home
DMs
DMs...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":14,"bounds":{"left":0.51180553,"top":0.08111111,"width":0.025,"height":0.04},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":14,"bounds":{"left":0.50625,"top":0.14,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":16,"bounds":{"left":0.5138889,"top":0.19222222,"width":0.020833334,"height":0.015555556},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":14,"bounds":{"left":0.50625,"top":0.21555555,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":16,"bounds":{"left":0.5159722,"top":0.26777777,"width":0.016666668,"height":0.015555556},"on_screen":true,"role_description":"text"}]...
|
-8589163668867601429
|
-8084570848560988489
|
click
|
hybrid
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
Home
Home
DMs
DMs
SlackFileEditViewGoHistoryWindowHelpDOCKERO ₴1DEV (docker)Last login: Sun May 10 21:10:26 on ttys013₴2APP (-zsh)883Poetry could not find a pyproject.toml file in /Users/lukas or its parentsPoetry could not find a pyproject.toml file in /Users/lukas or its parentslukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ l•-zshHomeDMsActivityFilesLater..•More§ Support Daily - in 1h 28 m100% C8•Mon 11 May 13:32:23ED→Describe what you are looking forJiminny ...clusticclllus+ More unreads## jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of_jimi...0 Direct messages®. Aneliya AngelovaP. Galya Dimitrova DP Petko Kashinskiã. Stefka StoyanovaE. Vasil Vasilev 0. Nikolay IvanovAneliya Angelova, ...2 Stoyan TanevC. Ves8. Lukas Kovalik y...::: AppsToastJira CloudGoogle Cale...Aneliya Angelova6 0MessagesAdd canvasO Files+тлс да се мордаnс anо vма approveTuesday, April 28th~Lukas Kova..те са някави flanky че при мен минават, ще гиоправяза деплой обаче не знамAneliya Angelova 5:14 PMзащоLukas Kovalik 5:15 PMами дали ще усепя да гледамAneliya Angelova 5:16 PMи за двете ли говоришLukas Kovalik 5:16 PMами ще го деплойна но ако нещо грьмнеAneliya Angelova 5:17 PMаа разбрахтеГаля каза че не се използва фичьраи няма проблем да грьмнеToday ~NewAneliya AngЛукаш за Hubspot за синковете вече се използватази команда нали?rm: sync-hubspot-objectMessage Aneliya Angelova...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
17771
|
779
|
0
|
2026-05-11T10:32:23.521969+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778495543521_m2.jpg...
|
Slack
|
Aneliya Angelova (DM) - Jiminny Inc - 3 new items Aneliya Angelova (DM) - Jiminny Inc - 3 new items - Slack...
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":14,"bounds":{"left":0.5152925,"top":1.0,"width":0.011968086,"height":-0.058260202},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":14,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":14,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":14,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":14,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":14,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
8884484407622198276
|
-8120845959807158105
|
click
|
hybrid
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
rireroyny.sentry.io/issues/7007366572/?environment=production&environment=production-eu&project=82419&query=is%3/Issues APP-TEED@ Ask Seer *sevenshores Hubspot \Exceptions\Badkequest1Client error: 'POST [URL_WITH_CREDENTIALS] HS_local [jiminny@localhost]console [PRODA console [STAGING]120152153157161Received 429 from APIX Cc W .*AIY::6-05-11 10:17:04] local.INF0:[CrmActivityService] CRM matching completed {"activity id":613826 "participants processed":2, "exact matches":6-05-11 10:17:04] local.INF0:Esupdarelaroer uodare sinole taroec "caroec, aculvicles, "purpose."searchaole-ooserve:6-05-11 10:17:04] local.INF0:[ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities" "entityId":613826:6-05-11 10:17:04] local.INF0: [MatchActivityCrmDatal Successfully matched CRM data {"activity":613826,"remote search":true. "lead_id":null."co16-05-11 10:17:04] local. INF0:Matchactiv1tycrmbata Starting CrM data matching ""activity":615820,"remote_search":true."s16-05-11 10:17:04] local.INF0:Esupdatelarget Update sinqle target ""target":"activitles", "purpose":"searchable-observer-update", "entitvid16-05-11 10:17:04] local. INFO:6-05-1 10:17:04 LOCOL. INFOHMatchactivrvermiatal Partacioants old state "'activity":615820."oart1c1oants".*"1:6-05-11 10:17:04] Local. INFOSocialAccountServicel Fetchina token "socialAccountid":14916-05-11 10:17:04 ZocaL. INFO:retrieved"socialAccountid"1d"• "ee78448)16-05-11 10:17:04) local.INFO16-05-11 10:17:041 Local. INF0:CrmOwnerResolver Intearation owner matched as CRM Ownerm ownen":148."team id"*2:6-05-11 10:17:04) local.INFO16-05-11 10-17•040 Tocol.TNS0:d".2"e:6-05-11 10:17:04) local.INFO6-05-11 10-17•041 local TNED• | EclindateTaraet " Uindate sinale taraet ¿itargeti "activitiod[ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities",matches":1,urpose":"searchable-observer-update" "entityIdtitvTdi•613820 "collectid16-05-11 10:17:04] local.INF0:16-05-11 10-17-041 Tocal TNE0•16-05-11 10:17:04] local.INF0:16-05-11 10:17:04] local.INF0: [ EsUpdateTarget ] Update single target {"target":"activities", "purpose":"searchable-observer-update" "entityId16-05-11 10:17:04] local.INF0:[ AsyncUpdateElasticSearch ) Entity added to Redis list {"entityType":"activities" "entityId":613818, "collectio14-05-11 10-17-0/1 10601 TNCO•[MatchActivi+vrnmhatal Danticinante old ctato filactivi+vll. 413019n.rfuadu.1001717 Hlucon idil.nulli:6-05-11 10:17:04] local.INF0:[SocialAccountServicel Fetching token {"socialAccountId":149%16-05-11 10:17:04] local.INF0:fcocialAecoun+Convicol Tokon notriovod filcocialAccoun+tal.1.:6-05-11 10:17:04] local.INF0:14-05-1110-17-0/1 10601 TNEN•[EncryptedTokenManager] Generating access token. {"modfenmlwnonDocolvonl Intoanation ounon matchod ac CPM NwnSiconnolation idu.un470/0274704а29-86b2-4b3f-ae73-0"team_1d":2:6-05-11 10:17:04] local.INF0:16-05-11 10:17:04] local.INF0:[Prospect match] Cache / local search hit {"identifier type";TeomActivitvSenvicel Email domain belongs to the team,16-05-11 10:17:041 local, INF0:16-05-11 10:17:041 local, INF0: [ EsUodateTarget 1 Uodate single target §"ta16-05-11 10:17:041 local, INF0:16-05-11 10:17:051 local, INF0:16-05-11 10:17:051 local, INFOMatchActivitvermdatal Startina CRM data matching ""activity":61id":2."eatches":"entitvIdntitvld":613818."collectioid":null."coarch":true."set confiauration":2odate" "entitvid:6-05-11 10:17:05] Local. INFO:ntitvid":613812."collectio16-05-11 10:17:051 local. INE0:Social AccountService Setchina token "socialAccounttid":14s""correllation 1d":"0698152e{"correlation id"."0698152*6-05-11 10•17-051 local. TNE0•EncnvntedTokenManagen Genenatina access token. "mode".":6-05-11 10:17:05] local. INFO*6-05-11 10•17-051 local. TNEOIProsnectmatchi Cache local seanch hit s'identifienid":"06981520-0a7h-46d1-05e4-ubsnoti "com ownen".148 "team idi.216-05-11 10:17:05] local.INF01-05-11 19-17.051 1oco1 TASOI16-05-11 10:17:05] local.INF0:14-05-11 19-17-051 1o601 TNSN•EsUpdateTarget ] Update single target16-05-11 10:17:05] local.INF0:[MatchActivityCrmData] Successfully matched CRM data {"activity":613812,"remote se16-05-11 10:17:05] local.INF0:Inationll.?16-05-11 10:17:05] local.INF0: [ EsUpdateTarqet ] Update single target {"target":"activities" "purpose": "searchable-observerundatoll Hontitutd16-05-11 10:17:05] local.INF0: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities" "entityId":613807 "collectio...
|
17768
|
NULL
|
NULL
|
NULL
|
|
17842
|
NULL
|
0
|
2026-05-11T10:37:23.752276+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778495843752_m1.jpg...
|
Slack
|
platform-inner-team (Channel) - Jiminny Inc - 3 ne platform-inner-team (Channel) - Jiminny Inc - 3 new items - Slack...
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
Unreads
Threads
Huddles
Drafts & sent
1
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
curiosity_lab
engineering
general
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Aneliya Angelova
Galya Dimitrova
Petko Kashinski
Stefka Stoyanova
Vasil Vasilev
Nikolay Ivanov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Stoyan Tanev
Ves
Lukas Kovalik
you
Toast
Jira Cloud
Google Calendar
Unread mentions
Messages
Messages
Channel Overview
Channel Overview
More
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Steliyan Georgiev
May 5th at 11:44:25 AM
11:44 AM
Моля погледнете този ПР, когато имате време. Претакал съм го вече през @claude ревюъра.
https://github.com/jiminny/prophet/pull/493
https://github.com/jiminny/prophet/pull/493
1 reaction, react with +1 emoji
1
Add reaction…
Jump to date
Aneliya Angelova
May 7th at 9:37:00 AM
9:37 AM
Добро утро, тази сутрин видях, че съм със спаднала гума и чакам да ми я залепят. Няма да успея за дейлито.
Jump to date
Lukas Kovalik
May 8th at 1:03:26 PM
1:03 PM
може ли review
https://github.com/jiminny/app/pull/12056
https://github.com/jiminny/app/pull/12056
May 8th at 1:03:53 PM
1:03
за ask jiminny reports datadog метрики
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Jump to date
New
Nikolay Yankov
Today at 12:51:13 PM
12:51 PM
има ли случаи някой да си е сетъпнал стотици или хиляди themes & topics?
1 reply
Today at 12:54 PM
View thread
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply to thread
Forward message…
Save for later
Summarize thread
More actions
Galya Dimitrova
Today at 1:03:49 PM
1:03 PM
Сторитата за MCP които да видим после на срещата:
https://jiminny.atlassian.net/browse/JY-20833
https://jiminny.atlassian.net/browse/JY-20833
https://jiminny.atlassian.net/browse/JY-20835
https://jiminny.atlassian.net/browse/JY-20835
https://jiminny.atlassian.net/browse/JY-20834
https://jiminny.atlassian.net/browse/JY-20834
https://jiminny.atlassian.net/browse/JY-20836
https://jiminny.atlassian.net/browse/JY-20836
4 attachments
4 attachments
Jira Cloud Story JY-20833 MCP > Enable users to get a list of calls and their details Story JY-20833 in Jira Cloud Preview in Slack
MCP > Enable users to get a list of calls and their details
Story JY-20833 in Jira Cloud
Preview in Slack
Open in browser
Share Story JY-20833
View conversations
More actions
Jira Cloud Story JY-20835 MCP > Enable users to get a list of deals and their details Story JY-20835 in Jira Cloud Preview in Slack
MCP > Enable users to get a list of deals and their details
Story JY-20835 in Jira Cloud
Preview in Slack
Open in browser
Share Story JY-20835
View conversations
More actions
Jira Cloud Story JY-20834 MCP > Authenticate each user for easy access Story JY-20834 in Jira Cloud Preview in Slack
MCP > Authenticate each user for easy access
Story JY-20834 in Jira Cloud
Preview in Slack
Open in browser
Share Story JY-20834
View conversations
More actions
Jira Cloud Story JY-20836 MCP > Audit log Story JY-20836 in Jira Cloud Preview in Slack
MCP > Audit log
Story JY-20836 in Jira Cloud
Preview in Slack
Open in browser
Share Story JY-20836
View conversations
More actions
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
loading…
Channel platform-inner-team...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":14,"bounds":{"left":0.51180553,"top":0.08111111,"width":0.025,"height":0.04},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":14,"bounds":{"left":0.50625,"top":0.14,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":16,"bounds":{"left":0.5138889,"top":0.19222222,"width":0.020833334,"height":0.015555556},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":14,"bounds":{"left":0.50625,"top":0.21555555,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":16,"bounds":{"left":0.5159722,"top":0.26777777,"width":0.016666668,"height":0.015555556},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":14,"bounds":{"left":0.50625,"top":0.2911111,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":16,"bounds":{"left":0.51111114,"top":0.34333333,"width":0.027083334,"height":0.015555556},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.51111114,"top":0.34333333,"width":0.0055555557,"height":0.015555556}},{"char_start":1,"char_count":7,"bounds":{"left":0.5159722,"top":0.34333333,"width":0.022222223,"height":0.015555556}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":14,"bounds":{"left":0.50625,"top":0.36666667,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":16,"bounds":{"left":0.51666665,"top":0.4188889,"width":0.015972223,"height":0.015555556},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.51666665,"top":0.4188889,"width":0.004166667,"height":0.015555556}},{"char_start":1,"char_count":4,"bounds":{"left":0.5208333,"top":0.4188889,"width":0.011805556,"height":0.015555556}}],"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":14,"bounds":{"left":0.50625,"top":0.4422222,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":16,"bounds":{"left":0.5152778,"top":0.49444443,"width":0.018055556,"height":0.015555556},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":14,"bounds":{"left":0.50625,"top":0.5177778,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":16,"bounds":{"left":0.5152778,"top":0.57,"width":0.01875,"height":0.015555556},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":21,"bounds":{"left":0.57708335,"top":0.12777779,"width":0.039583333,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":21,"bounds":{"left":0.57708335,"top":0.12777779,"width":0.036805555,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":21,"bounds":{"left":0.57708335,"top":0.12777779,"width":0.038194444,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":21,"bounds":{"left":0.57708335,"top":0.12777779,"width":0.06111111,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":21,"bounds":{"left":0.68472224,"top":0.12777779,"width":0.0055555557,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":21,"bounds":{"left":0.57708335,"top":0.12777779,"width":0.050694443,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-x-integration-app","depth":23,"bounds":{"left":0.58819443,"top":0.15111111,"width":0.09166667,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.58819443,"top":0.15111111,"width":0.0027777778,"height":0.02}},{"char_start":1,"char_count":24,"bounds":{"left":0.59097224,"top":0.15111111,"width":0.11319444,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":24,"bounds":{"left":0.58819443,"top":0.18222222,"width":0.093055554,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":23,"bounds":{"left":0.58819443,"top":0.25555557,"width":0.046527777,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":23,"bounds":{"left":0.58819443,"top":0.28666666,"width":0.025694445,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.58819443,"top":0.28666666,"width":0.0055555557,"height":0.02}},{"char_start":1,"char_count":5,"bounds":{"left":0.59375,"top":0.28666666,"width":0.019444445,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":23,"bounds":{"left":0.58819443,"top":0.31777778,"width":0.038194444,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":23,"bounds":{"left":0.58819443,"top":0.34888887,"width":0.022222223,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":23,"bounds":{"left":0.58819443,"top":0.38,"width":0.072222225,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.58819443,"top":0.38,"width":0.0048611113,"height":0.02}},{"char_start":1,"char_count":15,"bounds":{"left":0.59305555,"top":0.38,"width":0.06736111,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"curiosity_lab","depth":23,"bounds":{"left":0.58819443,"top":0.41111112,"width":0.057638887,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.58819443,"top":0.41111112,"width":0.0048611113,"height":0.02}},{"char_start":1,"char_count":12,"bounds":{"left":0.59305555,"top":0.41111112,"width":0.05277778,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":23,"bounds":{"left":0.58819443,"top":0.4422222,"width":0.054166667,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":23,"bounds":{"left":0.58819443,"top":0.47333333,"width":0.034027778,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":23,"bounds":{"left":0.58819443,"top":0.5044444,"width":0.048611112,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":23,"bounds":{"left":0.58819443,"top":0.53555554,"width":0.072916664,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.58819443,"top":0.53555554,"width":0.00625,"height":0.02}},{"char_start":1,"char_count":15,"bounds":{"left":0.59444445,"top":0.53555554,"width":0.06666667,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":23,"bounds":{"left":0.58819443,"top":0.56666666,"width":0.08055556,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":23,"bounds":{"left":0.58819443,"top":0.5977778,"width":0.035416666,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":23,"bounds":{"left":0.58819443,"top":0.6288889,"width":0.036805555,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"sofia-office","depth":23,"bounds":{"left":0.58819443,"top":0.66,"width":0.05138889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.58819443,"top":0.66,"width":0.0048611113,"height":0.02}},{"char_start":1,"char_count":11,"bounds":{"left":0.59305555,"top":0.66,"width":0.045833334,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"support","depth":23,"bounds":{"left":0.58819443,"top":0.6911111,"width":0.036111113,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":23,"bounds":{"left":0.58819443,"top":0.7222222,"width":0.05347222,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":23,"bounds":{"left":0.58819443,"top":0.75333333,"width":0.094444446,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.58819443,"top":0.75333333,"width":0.004166667,"height":0.02}},{"char_start":1,"char_count":20,"bounds":{"left":0.5923611,"top":0.75333333,"width":0.09861111,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.58819443,"top":0.82666665,"width":0.07847222,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"bounds":{"left":0.58819443,"top":0.8577778,"width":0.07361111,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":23,"bounds":{"left":0.58819443,"top":0.8888889,"width":0.072222225,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":23,"bounds":{"left":0.58819443,"top":0.92,"width":0.079166666,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":23,"bounds":{"left":0.58819443,"top":0.95111114,"width":0.055555556,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.58819443,"top":0.95111114,"width":0.00625,"height":0.02}},{"char_start":1,"char_count":12,"bounds":{"left":0.59444445,"top":0.95111114,"width":0.048611112,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Ivanov","depth":23,"bounds":{"left":0.58819443,"top":0.9822222,"width":0.06736111,"height":0.012222222},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tanev","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"you","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Unread mentions","depth":17,"bounds":{"left":0.575,"top":0.95444447,"width":0.10069445,"height":0.031111112},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Messages","depth":18,"bounds":{"left":0.71319443,"top":0.12777779,"width":0.06458333,"height":0.04222222},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":20,"bounds":{"left":0.7326389,"top":0.14,"width":0.039583333,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Channel Overview","depth":18,"bounds":{"left":0.7798611,"top":0.12777779,"width":0.1,"height":0.04222222},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Channel Overview","depth":20,"bounds":{"left":0.79930556,"top":0.14,"width":0.075,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More","depth":19,"bounds":{"left":0.8819444,"top":0.12777779,"width":0.04236111,"height":0.04222222},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":18,"bounds":{"left":0.92430556,"top":0.12777779,"width":0.022222223,"height":0.04222222},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":18,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":18,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":18,"on_screen":false,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":24,"bounds":{"left":0.8,"top":0.16111112,"width":0.09861111,"height":0.0011111111},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Steliyan Georgiev","depth":25,"bounds":{"left":0.7465278,"top":0.16111112,"width":0.08263889,"height":0.0011111111},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":25,"bounds":{"left":0.82916665,"top":0.16111112,"width":0.0055555557,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 5th at 11:44:25 AM","depth":25,"bounds":{"left":0.83402777,"top":0.16111112,"width":0.0375,"height":0.0011111111},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"11:44 AM","depth":26,"bounds":{"left":0.83402777,"top":0.16111112,"width":0.0375,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Моля погледнете този ПР, когато имате време. Претакал съм го вече през @claude ревюъра.","depth":26,"bounds":{"left":0.7465278,"top":0.16111112,"width":0.22708334,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://github.com/jiminny/prophet/pull/493","depth":26,"bounds":{"left":0.7465278,"top":0.16111112,"width":0.20555556,"height":0.0011111111},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://github.com/jiminny/prophet/pull/493","depth":27,"bounds":{"left":0.7465278,"top":0.16111112,"width":0.20555556,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with +1 emoji","depth":26,"bounds":{"left":0.7465278,"top":0.16111112,"width":0.029861111,"height":0.0011111111},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":27,"bounds":{"left":0.7659722,"top":0.16111112,"width":0.0048611113,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Add reaction…","depth":26,"bounds":{"left":0.77916664,"top":0.16111112,"width":0.023611112,"height":0.0011111111},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":24,"bounds":{"left":0.79791665,"top":0.16111112,"width":0.103472225,"height":0.0011111111},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Aneliya Angelova","depth":25,"bounds":{"left":0.7465278,"top":0.16111112,"width":0.08125,"height":0.0011111111},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":25,"bounds":{"left":0.8277778,"top":0.16111112,"width":0.0055555557,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 7th at 9:37:00 AM","depth":25,"bounds":{"left":0.8333333,"top":0.16111112,"width":0.031944446,"height":0.0011111111},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:37 AM","depth":26,"bounds":{"left":0.8333333,"top":0.16111112,"width":0.031944446,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Добро утро, тази сутрин видях, че съм със спаднала гума и чакам да ми я залепят. Няма да успея за дейлито.","depth":26,"bounds":{"left":0.7465278,"top":0.16111112,"width":0.2326389,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":24,"bounds":{"left":0.8041667,"top":0.17666666,"width":0.09097222,"height":0.031111112},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":25,"bounds":{"left":0.7465278,"top":0.16111112,"width":0.06458333,"height":0.0011111111},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":25,"bounds":{"left":0.8111111,"top":0.16111112,"width":0.0055555557,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 8th at 1:03:26 PM","depth":25,"bounds":{"left":0.81666666,"top":0.16111112,"width":0.03125,"height":0.0011111111},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1:03 PM","depth":26,"bounds":{"left":0.81666666,"top":0.16111112,"width":0.03125,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"може ли review","depth":26,"bounds":{"left":0.7465278,"top":0.16111112,"width":0.07430556,"height":0.006666667},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://github.com/jiminny/app/pull/12056","depth":26,"bounds":{"left":0.7465278,"top":0.17222223,"width":0.19791667,"height":0.02},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://github.com/jiminny/app/pull/12056","depth":27,"bounds":{"left":0.7465278,"top":0.17222223,"width":0.19791667,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 8th at 1:03:53 PM","depth":26,"bounds":{"left":0.72430557,"top":0.20888889,"width":0.016666668,"height":0.016666668},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1:03","depth":27,"bounds":{"left":0.72430557,"top":0.20888889,"width":0.016666668,"height":0.016666668},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"за ask jiminny reports datadog метрики","depth":26,"bounds":{"left":0.7465278,"top":0.20555556,"width":0.18194444,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":27,"bounds":{"left":0.8048611,"top":0.1711111,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":27,"bounds":{"left":0.82708335,"top":0.1711111,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":27,"bounds":{"left":0.84930557,"top":0.1711111,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":27,"bounds":{"left":0.8715278,"top":0.1711111,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":27,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":27,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":27,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":27,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":24,"bounds":{"left":0.8229167,"top":0.24777777,"width":0.05277778,"height":0.031111112},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"New","depth":24,"bounds":{"left":0.96458334,"top":0.25444445,"width":0.01875,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Nikolay Yankov","depth":25,"bounds":{"left":0.7465278,"top":0.2911111,"width":0.072222225,"height":0.024444444},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":25,"bounds":{"left":0.81805557,"top":0.29333332,"width":0.00625,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 12:51:13 PM","depth":25,"bounds":{"left":0.82361114,"top":0.29666665,"width":0.036805555,"height":0.016666668},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:51 PM","depth":26,"bounds":{"left":0.82361114,"top":0.29666665,"width":0.036805555,"height":0.016666668},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"има ли случаи някой да си е сетъпнал стотици или хиляди themes & topics?","depth":26,"bounds":{"left":0.7465278,"top":0.31777778,"width":0.22569445,"height":0.044444446},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.7465278,"top":0.31777778,"width":0.00625,"height":0.02}},{"char_start":1,"char_count":71,"bounds":{"left":0.7465278,"top":0.31777778,"width":0.225,"height":0.044444446}}],"role_description":"text"},{"role":"AXButton","text":"1 reply","depth":25,"bounds":{"left":0.76805556,"top":0.37222221,"width":0.027777778,"height":0.022222223},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Today at 12:54 PM","depth":26,"bounds":{"left":0.80138886,"top":0.37444445,"width":0.075,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"View thread","depth":26,"bounds":{"left":0.80138886,"top":0.37444445,"width":0.047916666,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":27,"bounds":{"left":0.7826389,"top":0.27222222,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":27,"bounds":{"left":0.8048611,"top":0.27222222,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":27,"bounds":{"left":0.82708335,"top":0.27222222,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":27,"bounds":{"left":0.84930557,"top":0.27222222,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply to thread","depth":27,"bounds":{"left":0.8715278,"top":0.27222222,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":27,"bounds":{"left":0.89375,"top":0.27222222,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":27,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Summarize thread","depth":27,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":27,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Galya Dimitrova","depth":25,"bounds":{"left":0.7465278,"top":0.41111112,"width":0.07638889,"height":0.024444444},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":25,"bounds":{"left":0.8361111,"top":0.41333333,"width":0.0055555557,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 1:03:49 PM","depth":25,"bounds":{"left":0.84166664,"top":0.41666666,"width":0.031944446,"height":0.016666668},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1:03 PM","depth":26,"bounds":{"left":0.84166664,"top":0.41666666,"width":0.031944446,"height":0.016666668},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Сторитата за MCP които да видим после на срещата:","depth":26,"bounds":{"left":0.7465278,"top":0.4377778,"width":0.21180555,"height":0.044444446},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.7465278,"top":0.4377778,"width":0.0069444445,"height":0.02}},{"char_start":1,"char_count":48,"bounds":{"left":0.7465278,"top":0.4377778,"width":0.21111111,"height":0.044444446}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":28,"bounds":{"left":0.74930555,"top":0.4888889,"width":0.010416667,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20833","depth":27,"bounds":{"left":0.7659722,"top":0.48666668,"width":0.21111111,"height":0.02},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20833","depth":28,"bounds":{"left":0.7659722,"top":0.48666668,"width":0.21111111,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":28,"bounds":{"left":0.74930555,"top":0.5133333,"width":0.010416667,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20835","depth":27,"bounds":{"left":0.7659722,"top":0.51111114,"width":0.21111111,"height":0.02},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20835","depth":28,"bounds":{"left":0.7659722,"top":0.51111114,"width":0.21111111,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":28,"bounds":{"left":0.74930555,"top":0.5377778,"width":0.010416667,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20834","depth":27,"bounds":{"left":0.7659722,"top":0.53555554,"width":0.21111111,"height":0.02},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20834","depth":28,"bounds":{"left":0.7659722,"top":0.53555554,"width":0.21111111,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":28,"bounds":{"left":0.74930555,"top":0.56222224,"width":0.010416667,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20836","depth":27,"bounds":{"left":0.7659722,"top":0.56,"width":0.21111111,"height":0.02},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20836","depth":28,"bounds":{"left":0.7659722,"top":0.56,"width":0.21111111,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"4 attachments","depth":25,"bounds":{"left":0.7465278,"top":0.5922222,"width":0.056944445,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"4 attachments","depth":25,"bounds":{"left":0.8055556,"top":0.5922222,"width":0.011805556,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"Jira Cloud Story JY-20833 MCP > Enable users to get a list of calls and their details Story JY-20833 in Jira Cloud Preview in Slack","depth":27,"bounds":{"left":0.7465278,"top":0.6155556,"width":0.2361111,"height":0.07333333},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"MCP > Enable users to get a list of calls and their details","depth":28,"bounds":{"left":0.7888889,"top":0.6344444,"width":0.18402778,"height":0.04},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.7888889,"top":0.6344444,"width":0.009722223,"height":0.02}},{"char_start":1,"char_count":58,"bounds":{"left":0.7888889,"top":0.6344444,"width":0.18333334,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"Story JY-20833 in Jira Cloud","depth":29,"bounds":{"left":0.7888889,"top":0.6566667,"width":0.11319444,"height":0.017777778},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.7888889,"top":0.6566667,"width":0.0048611113,"height":0.017777778}},{"char_start":1,"char_count":27,"bounds":{"left":0.79375,"top":0.6566667,"width":0.108333334,"height":0.017777778}}],"role_description":"text"},{"role":"AXStaticText","text":"Preview in Slack","depth":29,"bounds":{"left":0.7888889,"top":0.6566667,"width":0.06527778,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Open in browser","depth":29,"bounds":{"left":0.8819444,"top":0.6344444,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share Story JY-20833","depth":28,"bounds":{"left":0.90416664,"top":0.6344444,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View conversations","depth":28,"bounds":{"left":0.92638886,"top":0.6344444,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More actions","depth":28,"bounds":{"left":0.94861114,"top":0.6344444,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Jira Cloud Story JY-20835 MCP > Enable users to get a list of deals and their details Story JY-20835 in Jira Cloud Preview in Slack","depth":27,"bounds":{"left":0.7465278,"top":0.69777775,"width":0.2361111,"height":0.07333333},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"MCP > Enable users to get a list of deals and their details","depth":28,"bounds":{"left":0.7888889,"top":0.71666664,"width":0.17986111,"height":0.04},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.7888889,"top":0.71666664,"width":0.009722223,"height":0.02}},{"char_start":1,"char_count":58,"bounds":{"left":0.7888889,"top":0.71666664,"width":0.17986111,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"Story JY-20835 in Jira Cloud","depth":29,"bounds":{"left":0.7888889,"top":0.73888886,"width":0.11319444,"height":0.017777778},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.7888889,"top":0.73888886,"width":0.0048611113,"height":0.017777778}},{"char_start":1,"char_count":27,"bounds":{"left":0.79375,"top":0.73888886,"width":0.108333334,"height":0.017777778}}],"role_description":"text"},{"role":"AXStaticText","text":"Preview in Slack","depth":29,"bounds":{"left":0.7888889,"top":0.73888886,"width":0.06527778,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Open in browser","depth":29,"bounds":{"left":0.8819444,"top":0.71666664,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share Story JY-20835","depth":28,"bounds":{"left":0.90416664,"top":0.71666664,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View conversations","depth":28,"bounds":{"left":0.92638886,"top":0.71666664,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More actions","depth":28,"bounds":{"left":0.94861114,"top":0.71666664,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Jira Cloud Story JY-20834 MCP > Authenticate each user for easy access Story JY-20834 in Jira Cloud Preview in Slack","depth":27,"bounds":{"left":0.7465278,"top":0.78,"width":0.2361111,"height":0.07333333},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"MCP > Authenticate each user for easy access","depth":28,"bounds":{"left":0.7888889,"top":0.79888886,"width":0.18263888,"height":0.04},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.7888889,"top":0.79888886,"width":0.009722223,"height":0.02}},{"char_start":1,"char_count":43,"bounds":{"left":0.7888889,"top":0.79888886,"width":0.18194444,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"Story JY-20834 in Jira Cloud","depth":29,"bounds":{"left":0.7888889,"top":0.8211111,"width":0.11319444,"height":0.017777778},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.7888889,"top":0.8211111,"width":0.0048611113,"height":0.017777778}},{"char_start":1,"char_count":27,"bounds":{"left":0.79375,"top":0.8211111,"width":0.108333334,"height":0.017777778}}],"role_description":"text"},{"role":"AXStaticText","text":"Preview in Slack","depth":29,"bounds":{"left":0.7888889,"top":0.8211111,"width":0.06527778,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Open in browser","depth":29,"bounds":{"left":0.8819444,"top":0.79888886,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share Story JY-20834","depth":28,"bounds":{"left":0.90416664,"top":0.79888886,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View conversations","depth":28,"bounds":{"left":0.92638886,"top":0.79888886,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More actions","depth":28,"bounds":{"left":0.94861114,"top":0.79888886,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Jira Cloud Story JY-20836 MCP > Audit log Story JY-20836 in Jira Cloud Preview in Slack","depth":27,"bounds":{"left":0.7465278,"top":0.8622222,"width":0.2361111,"height":0.025555555},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"MCP > Audit log","depth":28,"bounds":{"left":0.7888889,"top":0.8811111,"width":0.07569444,"height":0.006666667},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Story JY-20836 in Jira Cloud","depth":29,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Preview in Slack","depth":29,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"Open in browser","depth":29,"bounds":{"left":0.8819444,"top":0.8811111,"width":0.022222223,"height":0.006666667},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share Story JY-20836","depth":28,"bounds":{"left":0.90416664,"top":0.8811111,"width":0.022222223,"height":0.006666667},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View conversations","depth":28,"bounds":{"left":0.92638886,"top":0.8811111,"width":0.022222223,"height":0.006666667},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More actions","depth":28,"bounds":{"left":0.94861114,"top":0.8811111,"width":0.022222223,"height":0.006666667},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":27,"bounds":{"left":0.8048611,"top":0.39222223,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":27,"bounds":{"left":0.82708335,"top":0.39222223,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":27,"bounds":{"left":0.84930557,"top":0.39222223,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":27,"bounds":{"left":0.8715278,"top":0.39222223,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":27,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":27,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":27,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":27,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"","depth":24,"bounds":{"left":0.71666664,"top":0.88,"width":0.26527777,"height":0.04222222},"on_screen":true,"value":"","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"loading…","depth":11,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Channel platform-inner-team","depth":11,"on_screen":false,"role_description":"text"}]...
|
7032962682439920042
|
-4055191365646677264
|
idle
|
hybrid
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
Unreads
Threads
Huddles
Drafts & sent
1
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
curiosity_lab
engineering
general
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Aneliya Angelova
Galya Dimitrova
Petko Kashinski
Stefka Stoyanova
Vasil Vasilev
Nikolay Ivanov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Stoyan Tanev
Ves
Lukas Kovalik
you
Toast
Jira Cloud
Google Calendar
Unread mentions
Messages
Messages
Channel Overview
Channel Overview
More
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Steliyan Georgiev
May 5th at 11:44:25 AM
11:44 AM
Моля погледнете този ПР, когато имате време. Претакал съм го вече през @claude ревюъра.
https://github.com/jiminny/prophet/pull/493
https://github.com/jiminny/prophet/pull/493
1 reaction, react with +1 emoji
1
Add reaction…
Jump to date
Aneliya Angelova
May 7th at 9:37:00 AM
9:37 AM
Добро утро, тази сутрин видях, че съм със спаднала гума и чакам да ми я залепят. Няма да успея за дейлито.
Jump to date
Lukas Kovalik
May 8th at 1:03:26 PM
1:03 PM
може ли review
https://github.com/jiminny/app/pull/12056
https://github.com/jiminny/app/pull/12056
May 8th at 1:03:53 PM
1:03
за ask jiminny reports datadog метрики
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Jump to date
New
Nikolay Yankov
Today at 12:51:13 PM
12:51 PM
има ли случаи някой да си е сетъпнал стотици или хиляди themes & topics?
1 reply
Today at 12:54 PM
View thread
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply to thread
Forward message…
Save for later
Summarize thread
More actions
Galya Dimitrova
Today at 1:03:49 PM
1:03 PM
Сторитата за MCP които да видим после на срещата:
https://jiminny.atlassian.net/browse/JY-20833
https://jiminny.atlassian.net/browse/JY-20833
https://jiminny.atlassian.net/browse/JY-20835
https://jiminny.atlassian.net/browse/JY-20835
https://jiminny.atlassian.net/browse/JY-20834
https://jiminny.atlassian.net/browse/JY-20834
https://jiminny.atlassian.net/browse/JY-20836
https://jiminny.atlassian.net/browse/JY-20836
4 attachments
4 attachments
Jira Cloud Story JY-20833 MCP > Enable users to get a list of calls and their details Story JY-20833 in Jira Cloud Preview in Slack
MCP > Enable users to get a list of calls and their details
Story JY-20833 in Jira Cloud
Preview in Slack
Open in browser
Share Story JY-20833
View conversations
More actions
Jira Cloud Story JY-20835 MCP > Enable users to get a list of deals and their details Story JY-20835 in Jira Cloud Preview in Slack
MCP > Enable users to get a list of deals and their details
Story JY-20835 in Jira Cloud
Preview in Slack
Open in browser
Share Story JY-20835
View conversations
More actions
Jira Cloud Story JY-20834 MCP > Authenticate each user for easy access Story JY-20834 in Jira Cloud Preview in Slack
MCP > Authenticate each user for easy access
Story JY-20834 in Jira Cloud
Preview in Slack
Open in browser
Share Story JY-20834
View conversations
More actions
Jira Cloud Story JY-20836 MCP > Audit log Story JY-20836 in Jira Cloud Preview in Slack
MCP > Audit log
Story JY-20836 in Jira Cloud
Preview in Slack
Open in browser
Share Story JY-20836
View conversations
More actions
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
loading…
Channel platform-inner-team
SlackFileEditViewGoHistoryWindowHelpDOCKERO ₴1DEV (docker)Last login: Sun May 10 21:10:26 on ttys013₴2APP (-zsh)883Poetry could not find a pyproject.toml file in /Users/lukas or its parentsPoetry could not find a pyproject.toml file in /Users/lukas or its parentslukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ l•-zshHomeDMsActivityLater..•More+lbl# Support Daily • in 1h 23 m100% C8 • Mon 11 May 13:37:23ED→Describe what you are looking forJiminny ...w Starrea& jiminny-x-integrati...8platform-inner-teamChannels# ai-chapter# alerts# backend# bugs# confusion-clinic# curiosity_lab# engineering# general# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...° Direct messagesR. Aneliya Angelova®. Galya Dimitrova DPetko Kashinski&o Stefka StoyanovaUnread mentionsa Nilalav lvanou*à platform-inner-team& 106 0• MessagesP Channel OverviewMore v+https://githurFriday, May 8th ~ oull/12056за ask jiminny reports datadog метрикиToday ~NewNikolay Yankov 12:51 PMима ли случаи някой да си е сетьпнал стотициили хиляди themes & topics?1 reply Today at 12:54 PMGalya Dimitrova1:03 PMСторитата за МСР които да видим после насрещата:• https://jiminny.atlassian.net/browse/JY-20833• https://jiminny.atlassian.net/browse/JY-20835• https://jiminny.atlassian.net/browse/JY-20834• https://jiminny.atlassian.net/browse/JY-208364 attachments •MCP › Enable users to get a list of call...Story JY-20833 in Jira CloudMCP › Enable users to get a list of de...Story JY-20835 in Jira CloudMCP › Authenticate each user for eas...Story JY-20834 in Jira CloudMessage & platform-inner-team+Аа...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
17843
|
NULL
|
0
|
2026-05-11T10:37:24.607592+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778495844607_m2.jpg...
|
Slack
|
platform-inner-team (Channel) - Jiminny Inc - 3 ne platform-inner-team (Channel) - Jiminny Inc - 3 new items - Slack...
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
Unreads
Threads
Huddles
Drafts & sent
1
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
curiosity_lab
engineering
general
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Aneliya Angelova
Galya Dimitrova
Petko Kashinski
Stefka Stoyanova
Vasil Vasilev
Nikolay Ivanov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Stoyan Tanev...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":14,"bounds":{"left":0.5152925,"top":1.0,"width":0.011968086,"height":-0.058260202},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":14,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":14,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":14,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":14,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":14,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":14,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":21,"bounds":{"left":0.5465425,"top":1.0,"width":0.018949468,"height":-0.09177971},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":21,"bounds":{"left":0.5465425,"top":1.0,"width":0.01761968,"height":-0.09177971},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":21,"bounds":{"left":0.5465425,"top":1.0,"width":0.018284574,"height":-0.09177971},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":21,"bounds":{"left":0.5465425,"top":1.0,"width":0.02925532,"height":-0.09177971},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":21,"bounds":{"left":0.5980718,"top":1.0,"width":0.0026595744,"height":-0.09177971},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":21,"bounds":{"left":0.5465425,"top":1.0,"width":0.024268618,"height":-0.09177971},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-x-integration-app","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":24,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"curiosity_lab","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"sofia-office","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Ivanov","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tanev","depth":23,"on_screen":false,"role_description":"text"}]...
|
-785883558906054602
|
-3515063313663091037
|
idle
|
hybrid
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
Unreads
Threads
Huddles
Drafts & sent
1
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
curiosity_lab
engineering
general
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Aneliya Angelova
Galya Dimitrova
Petko Kashinski
Stefka Stoyanova
Vasil Vasilev
Nikolay Ivanov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Stoyan Tanev
rireroyMIstory08Issues APP-TEEDID: 91c4f726167168clientendpointpayload••• @New Tab@Screenpipe - Archive7hours ago JSONJumo to: Hiahlial} catch (\Exception Se) {iT schlent->isunauchorizedexception(seSthis->logger->warning(' [Hubspot] Got 401 during pagination, attemptingObiect Jiminnv Services Crm Hubspot Cienthttps://api.hubapi.com/crm/v3/objects/contact/search &after: 70v filterGroups: [› < 1 item ?properties: l 14 items J,"Z ltemsObiect Jiminny Services Crm Hubspot Pagination PaginationState.pp/Services/Crm/ Hubspot/Pagination/HubspotPaginationService.php:51 in Jiminny Services Crm Hubspot Paginaaon/Services//Crm//Hubsnot/Client.nho:04 in Jiminnv Services Crm. Hubsnot Client-aetPacinatedData/app/Services/Crm/Hubspot/Service.php:1212 in Jiminny|Services\Crm\Hubspot\Service::Jiminny|Services\Crm\HubCalled from:/vendor/laravel/framework/src/Illuminate/Cache/Repository.php:564 in Illuminate\Cache\Repository:renJann/Servicas/Crm/Huhsnot /Sorvice nhn-1204 in Jiminnv|Servicoc|Crm|Hubsnat) Sorvico«matchRvNameapp//Services/Crm/CachedCrmServiceDecorator.php:167in Jiminny Services Crm\CachedCrmServiceDecorator:matlaon/Services//Crm//CrmActivitvService.ohn:227inJiminnv Services Crm.CrmActivitvService.fndCrmRecords/app/Services/Crm/CrmActivityService.php:139 in Jiminny\Services\Crm\CrmActivityService:updateParticipantsCrmllaoo/Services/crm/CrmActivitvService.ohv.81inJiminnvServices.Crm.CrmActivityService.uodateCrmDatalJann/Aobs/Crm/MatchActivitvCrm0ata.nhn:107inJiminnv|Johc\Crm|MatchActivitvCrmData«liminnv|Johc\CrmVcloCalled from: /vendor/laravel/framework/src/llluminate/Database/Concerns/ManadecTrancactions.nhn:35 in llluminateJann/2ohs/Crm//MatchActivitvCrmData.nhn.87inliminnvJohc\Crm.MatchActivitvCrmData«handlelaoo/Queue/Worker/Worker.oho:71 in Jiminnv\Queue Worker Worker-procescCalled from:/vendor/laravel//framework/src//llluminate/Queue/Worker.ohv:435inllluminate.Queue.Worker..runJobGuzzleHtto Excention ClientExcentionapp.screenolpe.lakylak.xyzscreenolpearchive.db • 12323.6MBAewVinevWeltkeikeelenaAl SummanAPP TIMELINE • CLICK TO PLAY - DRAG SCROLLBAR TO PANI4 30s[Firefox)0 CleanShot XQuickTime PlavelPhoSton07 / 05/ 2026...
|
17841
|
NULL
|
NULL
|
NULL
|
|
17844
|
780
|
0
|
2026-05-11T10:37:54.436130+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778495874436_m1.jpg...
|
Slack
|
platform-inner-team (Channel) - Jiminny Inc - 3 ne platform-inner-team (Channel) - Jiminny Inc - 3 new items - Slack...
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
Unreads
Threads
Huddles
Drafts & sent
1
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
curiosity_lab
engineering
general
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Aneliya Angelova
Galya Dimitrova
Petko Kashinski
Stefka Stoyanova
Vasil Vasilev
Nikolay Ivanov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Stoyan Tanev
Ves
Lukas Kovalik
you
Toast
Jira Cloud
Google Calendar
Unread mentions
Messages
Messages
Channel Overview
Channel Overview
More
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Steliyan Georgiev
May 5th at 11:44:25 AM
11:44 AM
Моля погледнете този ПР, когато имате време. Претакал съм го вече през @claude ревюъра.
https://github.com/jiminny/prophet/pull/493
https://github.com/jiminny/prophet/pull/493
1 reaction, react with +1 emoji
1
Add reaction…
Jump to date
Aneliya Angelova
May 7th at 9:37:00 AM
9:37 AM
Добро утро, тази сутрин видях, че съм със спаднала гума и чакам да ми я залепят. Няма да успея за дейлито.
Jump to date
Lukas Kovalik
May 8th at 1:03:26 PM
1:03 PM
може ли review
https://github.com/jiminny/app/pull/12056
https://github.com/jiminny/app/pull/12056
May 8th at 1:03:53 PM
1:03
за ask jiminny reports datadog метрики
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Jump to date
New
Nikolay Yankov
Today at 12:51:13 PM
12:51 PM
има ли случаи някой да си е сетъпнал стотици или хиляди themes & topics?
1 reply
Today at 12:54 PM
View thread
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply to thread
Forward message…
Save for later
Summarize thread
More actions
Galya Dimitrova
Today at 1:03:49 PM
1:03 PM
Сторитата за MCP които да видим после на срещата:
https://jiminny.atlassian.net/browse/JY-20833
https://jiminny.atlassian.net/browse/JY-20833
https://jiminny.atlassian.net/browse/JY-20835
https://jiminny.atlassian.net/browse/JY-20835
https://jiminny.atlassian.net/browse/JY-20834
https://jiminny.atlassian.net/browse/JY-20834
https://jiminny.atlassian.net/browse/JY-20836
https://jiminny.atlassian.net/browse/JY-20836
4 attachments
4 attachments
Jira Cloud Story JY-20833 MCP > Enable users to get a list of calls and their details Story JY-20833 in Jira Cloud Preview in Slack
MCP > Enable users to get a list of calls and their details
Story JY-20833 in Jira Cloud
Preview in Slack
Open in browser
Share Story JY-20833
View conversations
More actions
Jira Cloud Story JY-20835 MCP > Enable users to get a list of deals and their details Story JY-20835 in Jira Cloud Preview in Slack
MCP > Enable users to get a list of deals and their details
Story JY-20835 in Jira Cloud
Preview in Slack
Open in browser
Share Story JY-20835
View conversations
More actions
Jira Cloud Story JY-20834 MCP > Authenticate each user for easy access Story JY-20834 in Jira Cloud Preview in Slack
MCP > Authenticate each user for easy access
Story JY-20834 in Jira Cloud
Preview in Slack
Open in browser
Share Story JY-20834
View conversations
More actions
Jira Cloud Story JY-20836 MCP > Audit log Story JY-20836 in Jira Cloud Preview in Slack
MCP > Audit log
Story JY-20836 in Jira Cloud
Preview in Slack
Open in browser
Share Story JY-20836
View conversations
More actions
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
loading…
Channel platform-inner-team...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":14,"bounds":{"left":0.51180553,"top":0.08111111,"width":0.025,"height":0.04},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":14,"bounds":{"left":0.50625,"top":0.14,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":16,"bounds":{"left":0.5138889,"top":0.19222222,"width":0.020833334,"height":0.015555556},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":14,"bounds":{"left":0.50625,"top":0.21555555,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":16,"bounds":{"left":0.5159722,"top":0.26777777,"width":0.016666668,"height":0.015555556},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":14,"bounds":{"left":0.50625,"top":0.2911111,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":16,"bounds":{"left":0.51111114,"top":0.34333333,"width":0.027083334,"height":0.015555556},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.51111114,"top":0.34333333,"width":0.0055555557,"height":0.015555556}},{"char_start":1,"char_count":7,"bounds":{"left":0.5159722,"top":0.34333333,"width":0.022222223,"height":0.015555556}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":14,"bounds":{"left":0.50625,"top":0.36666667,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":16,"bounds":{"left":0.51666665,"top":0.4188889,"width":0.015972223,"height":0.015555556},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.51666665,"top":0.4188889,"width":0.004166667,"height":0.015555556}},{"char_start":1,"char_count":4,"bounds":{"left":0.5208333,"top":0.4188889,"width":0.011805556,"height":0.015555556}}],"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":14,"bounds":{"left":0.50625,"top":0.4422222,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":16,"bounds":{"left":0.5152778,"top":0.49444443,"width":0.018055556,"height":0.015555556},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":14,"bounds":{"left":0.50625,"top":0.5177778,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":16,"bounds":{"left":0.5152778,"top":0.57,"width":0.01875,"height":0.015555556},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":21,"bounds":{"left":0.57708335,"top":0.12777779,"width":0.039583333,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":21,"bounds":{"left":0.57708335,"top":0.12777779,"width":0.036805555,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":21,"bounds":{"left":0.57708335,"top":0.12777779,"width":0.038194444,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":21,"bounds":{"left":0.57708335,"top":0.12777779,"width":0.06111111,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":21,"bounds":{"left":0.68472224,"top":0.12777779,"width":0.0055555557,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":21,"bounds":{"left":0.57708335,"top":0.12777779,"width":0.050694443,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-x-integration-app","depth":23,"bounds":{"left":0.58819443,"top":0.15111111,"width":0.09166667,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.58819443,"top":0.15111111,"width":0.0027777778,"height":0.02}},{"char_start":1,"char_count":24,"bounds":{"left":0.59097224,"top":0.15111111,"width":0.11319444,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":23,"bounds":{"left":0.58819443,"top":0.18222222,"width":0.093055554,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":23,"bounds":{"left":0.58819443,"top":0.25555557,"width":0.046527777,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":23,"bounds":{"left":0.58819443,"top":0.28666666,"width":0.025694445,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.58819443,"top":0.28666666,"width":0.0055555557,"height":0.02}},{"char_start":1,"char_count":5,"bounds":{"left":0.59375,"top":0.28666666,"width":0.019444445,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":23,"bounds":{"left":0.58819443,"top":0.31777778,"width":0.038194444,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":23,"bounds":{"left":0.58819443,"top":0.34888887,"width":0.022222223,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":23,"bounds":{"left":0.58819443,"top":0.38,"width":0.072222225,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.58819443,"top":0.38,"width":0.0048611113,"height":0.02}},{"char_start":1,"char_count":15,"bounds":{"left":0.59305555,"top":0.38,"width":0.06736111,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"curiosity_lab","depth":23,"bounds":{"left":0.58819443,"top":0.41111112,"width":0.057638887,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.58819443,"top":0.41111112,"width":0.0048611113,"height":0.02}},{"char_start":1,"char_count":12,"bounds":{"left":0.59305555,"top":0.41111112,"width":0.05277778,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":23,"bounds":{"left":0.58819443,"top":0.4422222,"width":0.054166667,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":23,"bounds":{"left":0.58819443,"top":0.47333333,"width":0.034027778,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":23,"bounds":{"left":0.58819443,"top":0.5044444,"width":0.048611112,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":23,"bounds":{"left":0.58819443,"top":0.53555554,"width":0.072916664,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.58819443,"top":0.53555554,"width":0.00625,"height":0.02}},{"char_start":1,"char_count":15,"bounds":{"left":0.59444445,"top":0.53555554,"width":0.06666667,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":23,"bounds":{"left":0.58819443,"top":0.56666666,"width":0.08055556,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":23,"bounds":{"left":0.58819443,"top":0.5977778,"width":0.035416666,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":23,"bounds":{"left":0.58819443,"top":0.6288889,"width":0.036805555,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"sofia-office","depth":23,"bounds":{"left":0.58819443,"top":0.66,"width":0.05138889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.58819443,"top":0.66,"width":0.0048611113,"height":0.02}},{"char_start":1,"char_count":11,"bounds":{"left":0.59305555,"top":0.66,"width":0.045833334,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"support","depth":23,"bounds":{"left":0.58819443,"top":0.6911111,"width":0.036111113,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":23,"bounds":{"left":0.58819443,"top":0.7222222,"width":0.05347222,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":23,"bounds":{"left":0.58819443,"top":0.75333333,"width":0.094444446,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.58819443,"top":0.75333333,"width":0.004166667,"height":0.02}},{"char_start":1,"char_count":20,"bounds":{"left":0.5923611,"top":0.75333333,"width":0.09861111,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.58819443,"top":0.82666665,"width":0.07847222,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"bounds":{"left":0.58819443,"top":0.8577778,"width":0.07361111,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":23,"bounds":{"left":0.58819443,"top":0.8888889,"width":0.072222225,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":23,"bounds":{"left":0.58819443,"top":0.92,"width":0.079166666,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":23,"bounds":{"left":0.58819443,"top":0.95111114,"width":0.055555556,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.58819443,"top":0.95111114,"width":0.00625,"height":0.02}},{"char_start":1,"char_count":12,"bounds":{"left":0.59444445,"top":0.95111114,"width":0.048611112,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Ivanov","depth":23,"bounds":{"left":0.58819443,"top":0.9822222,"width":0.06736111,"height":0.012222222},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tanev","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"you","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Unread mentions","depth":17,"bounds":{"left":0.575,"top":0.95444447,"width":0.10069445,"height":0.031111112},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Messages","depth":18,"bounds":{"left":0.71319443,"top":0.12777779,"width":0.06458333,"height":0.04222222},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":20,"bounds":{"left":0.7326389,"top":0.14,"width":0.039583333,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Channel Overview","depth":18,"bounds":{"left":0.7798611,"top":0.12777779,"width":0.1,"height":0.04222222},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Channel Overview","depth":20,"bounds":{"left":0.79930556,"top":0.14,"width":0.075,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More","depth":19,"bounds":{"left":0.8819444,"top":0.12777779,"width":0.04236111,"height":0.04222222},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":18,"bounds":{"left":0.92430556,"top":0.12777779,"width":0.022222223,"height":0.04222222},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":18,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":18,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":18,"on_screen":false,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"bounds":{"left":0.8,"top":0.16111112,"width":0.09861111,"height":0.0011111111},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Steliyan Georgiev","depth":24,"bounds":{"left":0.7465278,"top":0.16111112,"width":0.08263889,"height":0.0011111111},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.82916665,"top":0.16111112,"width":0.0055555557,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 5th at 11:44:25 AM","depth":24,"bounds":{"left":0.83402777,"top":0.16111112,"width":0.0375,"height":0.0011111111},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"11:44 AM","depth":25,"bounds":{"left":0.83402777,"top":0.16111112,"width":0.0375,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Моля погледнете този ПР, когато имате време. Претакал съм го вече през @claude ревюъра.","depth":25,"bounds":{"left":0.7465278,"top":0.16111112,"width":0.22708334,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://github.com/jiminny/prophet/pull/493","depth":25,"bounds":{"left":0.7465278,"top":0.16111112,"width":0.20555556,"height":0.0011111111},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://github.com/jiminny/prophet/pull/493","depth":26,"bounds":{"left":0.7465278,"top":0.16111112,"width":0.20555556,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"1 reaction, react with +1 emoji","depth":25,"bounds":{"left":0.7465278,"top":0.16111112,"width":0.029861111,"height":0.0011111111},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":26,"bounds":{"left":0.7659722,"top":0.16111112,"width":0.0048611113,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Add reaction…","depth":25,"bounds":{"left":0.77916664,"top":0.16111112,"width":0.023611112,"height":0.0011111111},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"bounds":{"left":0.79791665,"top":0.16111112,"width":0.103472225,"height":0.0011111111},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Aneliya Angelova","depth":24,"bounds":{"left":0.7465278,"top":0.16111112,"width":0.08125,"height":0.0011111111},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.8277778,"top":0.16111112,"width":0.0055555557,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 7th at 9:37:00 AM","depth":24,"bounds":{"left":0.8333333,"top":0.16111112,"width":0.031944446,"height":0.0011111111},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:37 AM","depth":25,"bounds":{"left":0.8333333,"top":0.16111112,"width":0.031944446,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Добро утро, тази сутрин видях, че съм със спаднала гума и чакам да ми я залепят. Няма да успея за дейлито.","depth":25,"bounds":{"left":0.7465278,"top":0.16111112,"width":0.2326389,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"bounds":{"left":0.8041667,"top":0.17666666,"width":0.09097222,"height":0.031111112},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":24,"bounds":{"left":0.7465278,"top":0.16111112,"width":0.06458333,"height":0.0011111111},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.8111111,"top":0.16111112,"width":0.0055555557,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 8th at 1:03:26 PM","depth":24,"bounds":{"left":0.81666666,"top":0.16111112,"width":0.03125,"height":0.0011111111},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1:03 PM","depth":25,"bounds":{"left":0.81666666,"top":0.16111112,"width":0.03125,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"може ли review","depth":25,"bounds":{"left":0.7465278,"top":0.16111112,"width":0.07430556,"height":0.006666667},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://github.com/jiminny/app/pull/12056","depth":25,"bounds":{"left":0.7465278,"top":0.17222223,"width":0.19791667,"height":0.02},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://github.com/jiminny/app/pull/12056","depth":26,"bounds":{"left":0.7465278,"top":0.17222223,"width":0.19791667,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"May 8th at 1:03:53 PM","depth":25,"bounds":{"left":0.72430557,"top":0.20888889,"width":0.016666668,"height":0.016666668},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1:03","depth":26,"bounds":{"left":0.72430557,"top":0.20888889,"width":0.016666668,"height":0.016666668},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"за ask jiminny reports datadog метрики","depth":25,"bounds":{"left":0.7465278,"top":0.20555556,"width":0.18194444,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"bounds":{"left":0.8048611,"top":0.1711111,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"bounds":{"left":0.82708335,"top":0.1711111,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"bounds":{"left":0.84930557,"top":0.1711111,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"bounds":{"left":0.8715278,"top":0.1711111,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Jump to date","depth":23,"bounds":{"left":0.8229167,"top":0.24777777,"width":0.05277778,"height":0.031111112},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"New","depth":23,"bounds":{"left":0.96458334,"top":0.25444445,"width":0.01875,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Nikolay Yankov","depth":24,"bounds":{"left":0.7465278,"top":0.2911111,"width":0.072222225,"height":0.024444444},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.81805557,"top":0.29333332,"width":0.00625,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 12:51:13 PM","depth":24,"bounds":{"left":0.82361114,"top":0.29666665,"width":0.036805555,"height":0.016666668},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:51 PM","depth":25,"bounds":{"left":0.82361114,"top":0.29666665,"width":0.036805555,"height":0.016666668},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"има ли случаи някой да си е сетъпнал стотици или хиляди themes & topics?","depth":25,"bounds":{"left":0.7465278,"top":0.31777778,"width":0.22569445,"height":0.044444446},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.7465278,"top":0.31777778,"width":0.00625,"height":0.02}},{"char_start":1,"char_count":71,"bounds":{"left":0.7465278,"top":0.31777778,"width":0.225,"height":0.044444446}}],"role_description":"text"},{"role":"AXButton","text":"1 reply","depth":24,"bounds":{"left":0.76805556,"top":0.37222221,"width":0.027777778,"height":0.022222223},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Today at 12:54 PM","depth":25,"bounds":{"left":0.80138886,"top":0.37444445,"width":0.075,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"View thread","depth":25,"bounds":{"left":0.80138886,"top":0.37444445,"width":0.047916666,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"bounds":{"left":0.7826389,"top":0.27222222,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"bounds":{"left":0.8048611,"top":0.27222222,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"bounds":{"left":0.82708335,"top":0.27222222,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"bounds":{"left":0.84930557,"top":0.27222222,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply to thread","depth":26,"bounds":{"left":0.8715278,"top":0.27222222,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"bounds":{"left":0.89375,"top":0.27222222,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Summarize thread","depth":26,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Galya Dimitrova","depth":24,"bounds":{"left":0.7465278,"top":0.41111112,"width":0.07638889,"height":0.024444444},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.8361111,"top":0.41333333,"width":0.0055555557,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 1:03:49 PM","depth":24,"bounds":{"left":0.84166664,"top":0.41666666,"width":0.031944446,"height":0.016666668},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1:03 PM","depth":25,"bounds":{"left":0.84166664,"top":0.41666666,"width":0.031944446,"height":0.016666668},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Сторитата за MCP които да видим после на срещата:","depth":25,"bounds":{"left":0.7465278,"top":0.4377778,"width":0.21180555,"height":0.044444446},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.7465278,"top":0.4377778,"width":0.0069444445,"height":0.02}},{"char_start":1,"char_count":48,"bounds":{"left":0.7465278,"top":0.4377778,"width":0.21111111,"height":0.044444446}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.74930555,"top":0.4888889,"width":0.010416667,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20833","depth":26,"bounds":{"left":0.7659722,"top":0.48666668,"width":0.21111111,"height":0.02},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20833","depth":27,"bounds":{"left":0.7659722,"top":0.48666668,"width":0.21111111,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.74930555,"top":0.5133333,"width":0.010416667,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20835","depth":26,"bounds":{"left":0.7659722,"top":0.51111114,"width":0.21111111,"height":0.02},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20835","depth":27,"bounds":{"left":0.7659722,"top":0.51111114,"width":0.21111111,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.74930555,"top":0.5377778,"width":0.010416667,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20834","depth":26,"bounds":{"left":0.7659722,"top":0.53555554,"width":0.21111111,"height":0.02},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20834","depth":27,"bounds":{"left":0.7659722,"top":0.53555554,"width":0.21111111,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.74930555,"top":0.56222224,"width":0.010416667,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"https://jiminny.atlassian.net/browse/JY-20836","depth":26,"bounds":{"left":0.7659722,"top":0.56,"width":0.21111111,"height":0.02},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"https://jiminny.atlassian.net/browse/JY-20836","depth":27,"bounds":{"left":0.7659722,"top":0.56,"width":0.21111111,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"4 attachments","depth":24,"bounds":{"left":0.7465278,"top":0.5922222,"width":0.056944445,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"4 attachments","depth":24,"bounds":{"left":0.8055556,"top":0.5922222,"width":0.011805556,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"Jira Cloud Story JY-20833 MCP > Enable users to get a list of calls and their details Story JY-20833 in Jira Cloud Preview in Slack","depth":26,"bounds":{"left":0.7465278,"top":0.6155556,"width":0.2361111,"height":0.07333333},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"MCP > Enable users to get a list of calls and their details","depth":27,"bounds":{"left":0.7888889,"top":0.6344444,"width":0.18402778,"height":0.04},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.7888889,"top":0.6344444,"width":0.009722223,"height":0.02}},{"char_start":1,"char_count":58,"bounds":{"left":0.7888889,"top":0.6344444,"width":0.18333334,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"Story JY-20833 in Jira Cloud","depth":28,"bounds":{"left":0.7888889,"top":0.6566667,"width":0.11319444,"height":0.017777778},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.7888889,"top":0.6566667,"width":0.0048611113,"height":0.017777778}},{"char_start":1,"char_count":27,"bounds":{"left":0.79375,"top":0.6566667,"width":0.108333334,"height":0.017777778}}],"role_description":"text"},{"role":"AXStaticText","text":"Preview in Slack","depth":28,"bounds":{"left":0.7888889,"top":0.6566667,"width":0.06527778,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Open in browser","depth":28,"bounds":{"left":0.8819444,"top":0.6344444,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share Story JY-20833","depth":27,"bounds":{"left":0.90416664,"top":0.6344444,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View conversations","depth":27,"bounds":{"left":0.92638886,"top":0.6344444,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More actions","depth":27,"bounds":{"left":0.94861114,"top":0.6344444,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Jira Cloud Story JY-20835 MCP > Enable users to get a list of deals and their details Story JY-20835 in Jira Cloud Preview in Slack","depth":26,"bounds":{"left":0.7465278,"top":0.69777775,"width":0.2361111,"height":0.07333333},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"MCP > Enable users to get a list of deals and their details","depth":27,"bounds":{"left":0.7888889,"top":0.71666664,"width":0.17986111,"height":0.04},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.7888889,"top":0.71666664,"width":0.009722223,"height":0.02}},{"char_start":1,"char_count":58,"bounds":{"left":0.7888889,"top":0.71666664,"width":0.17986111,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"Story JY-20835 in Jira Cloud","depth":28,"bounds":{"left":0.7888889,"top":0.73888886,"width":0.11319444,"height":0.017777778},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.7888889,"top":0.73888886,"width":0.0048611113,"height":0.017777778}},{"char_start":1,"char_count":27,"bounds":{"left":0.79375,"top":0.73888886,"width":0.108333334,"height":0.017777778}}],"role_description":"text"},{"role":"AXStaticText","text":"Preview in Slack","depth":28,"bounds":{"left":0.7888889,"top":0.73888886,"width":0.06527778,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Open in browser","depth":28,"bounds":{"left":0.8819444,"top":0.71666664,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share Story JY-20835","depth":27,"bounds":{"left":0.90416664,"top":0.71666664,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View conversations","depth":27,"bounds":{"left":0.92638886,"top":0.71666664,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More actions","depth":27,"bounds":{"left":0.94861114,"top":0.71666664,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Jira Cloud Story JY-20834 MCP > Authenticate each user for easy access Story JY-20834 in Jira Cloud Preview in Slack","depth":26,"bounds":{"left":0.7465278,"top":0.78,"width":0.2361111,"height":0.07333333},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"MCP > Authenticate each user for easy access","depth":27,"bounds":{"left":0.7888889,"top":0.79888886,"width":0.18263888,"height":0.04},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.7888889,"top":0.79888886,"width":0.009722223,"height":0.02}},{"char_start":1,"char_count":43,"bounds":{"left":0.7888889,"top":0.79888886,"width":0.18194444,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"Story JY-20834 in Jira Cloud","depth":28,"bounds":{"left":0.7888889,"top":0.8211111,"width":0.11319444,"height":0.017777778},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.7888889,"top":0.8211111,"width":0.0048611113,"height":0.017777778}},{"char_start":1,"char_count":27,"bounds":{"left":0.79375,"top":0.8211111,"width":0.108333334,"height":0.017777778}}],"role_description":"text"},{"role":"AXStaticText","text":"Preview in Slack","depth":28,"bounds":{"left":0.7888889,"top":0.8211111,"width":0.06527778,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Open in browser","depth":28,"bounds":{"left":0.8819444,"top":0.79888886,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share Story JY-20834","depth":27,"bounds":{"left":0.90416664,"top":0.79888886,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View conversations","depth":27,"bounds":{"left":0.92638886,"top":0.79888886,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More actions","depth":27,"bounds":{"left":0.94861114,"top":0.79888886,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Jira Cloud Story JY-20836 MCP > Audit log Story JY-20836 in Jira Cloud Preview in Slack","depth":26,"bounds":{"left":0.7465278,"top":0.8622222,"width":0.2361111,"height":0.025555555},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"MCP > Audit log","depth":27,"bounds":{"left":0.7888889,"top":0.8811111,"width":0.07569444,"height":0.006666667},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Story JY-20836 in Jira Cloud","depth":28,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Preview in Slack","depth":28,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"Open in browser","depth":28,"bounds":{"left":0.8819444,"top":0.8811111,"width":0.022222223,"height":0.006666667},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share Story JY-20836","depth":27,"bounds":{"left":0.90416664,"top":0.8811111,"width":0.022222223,"height":0.006666667},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View conversations","depth":27,"bounds":{"left":0.92638886,"top":0.8811111,"width":0.022222223,"height":0.006666667},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More actions","depth":27,"bounds":{"left":0.94861114,"top":0.8811111,"width":0.022222223,"height":0.006666667},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with white_check_mark","depth":26,"bounds":{"left":0.8048611,"top":0.39222223,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":26,"bounds":{"left":0.82708335,"top":0.39222223,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":26,"bounds":{"left":0.84930557,"top":0.39222223,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":26,"bounds":{"left":0.8715278,"top":0.39222223,"width":0.022222223,"height":0.035555556},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":26,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":26,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":26,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":26,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"","depth":24,"bounds":{"left":0.71666664,"top":0.88,"width":0.26527777,"height":0.04222222},"on_screen":true,"value":"","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"loading…","depth":11,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Channel platform-inner-team","depth":11,"on_screen":false,"role_description":"text"}]...
|
7032962682439920042
|
-4055191365646677264
|
idle
|
hybrid
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
Unreads
Threads
Huddles
Drafts & sent
1
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
curiosity_lab
engineering
general
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Aneliya Angelova
Galya Dimitrova
Petko Kashinski
Stefka Stoyanova
Vasil Vasilev
Nikolay Ivanov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Stoyan Tanev
Ves
Lukas Kovalik
you
Toast
Jira Cloud
Google Calendar
Unread mentions
Messages
Messages
Channel Overview
Channel Overview
More
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Steliyan Georgiev
May 5th at 11:44:25 AM
11:44 AM
Моля погледнете този ПР, когато имате време. Претакал съм го вече през @claude ревюъра.
https://github.com/jiminny/prophet/pull/493
https://github.com/jiminny/prophet/pull/493
1 reaction, react with +1 emoji
1
Add reaction…
Jump to date
Aneliya Angelova
May 7th at 9:37:00 AM
9:37 AM
Добро утро, тази сутрин видях, че съм със спаднала гума и чакам да ми я залепят. Няма да успея за дейлито.
Jump to date
Lukas Kovalik
May 8th at 1:03:26 PM
1:03 PM
може ли review
https://github.com/jiminny/app/pull/12056
https://github.com/jiminny/app/pull/12056
May 8th at 1:03:53 PM
1:03
за ask jiminny reports datadog метрики
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Jump to date
New
Nikolay Yankov
Today at 12:51:13 PM
12:51 PM
има ли случаи някой да си е сетъпнал стотици или хиляди themes & topics?
1 reply
Today at 12:54 PM
View thread
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply to thread
Forward message…
Save for later
Summarize thread
More actions
Galya Dimitrova
Today at 1:03:49 PM
1:03 PM
Сторитата за MCP които да видим после на срещата:
https://jiminny.atlassian.net/browse/JY-20833
https://jiminny.atlassian.net/browse/JY-20833
https://jiminny.atlassian.net/browse/JY-20835
https://jiminny.atlassian.net/browse/JY-20835
https://jiminny.atlassian.net/browse/JY-20834
https://jiminny.atlassian.net/browse/JY-20834
https://jiminny.atlassian.net/browse/JY-20836
https://jiminny.atlassian.net/browse/JY-20836
4 attachments
4 attachments
Jira Cloud Story JY-20833 MCP > Enable users to get a list of calls and their details Story JY-20833 in Jira Cloud Preview in Slack
MCP > Enable users to get a list of calls and their details
Story JY-20833 in Jira Cloud
Preview in Slack
Open in browser
Share Story JY-20833
View conversations
More actions
Jira Cloud Story JY-20835 MCP > Enable users to get a list of deals and their details Story JY-20835 in Jira Cloud Preview in Slack
MCP > Enable users to get a list of deals and their details
Story JY-20835 in Jira Cloud
Preview in Slack
Open in browser
Share Story JY-20835
View conversations
More actions
Jira Cloud Story JY-20834 MCP > Authenticate each user for easy access Story JY-20834 in Jira Cloud Preview in Slack
MCP > Authenticate each user for easy access
Story JY-20834 in Jira Cloud
Preview in Slack
Open in browser
Share Story JY-20834
View conversations
More actions
Jira Cloud Story JY-20836 MCP > Audit log Story JY-20836 in Jira Cloud Preview in Slack
MCP > Audit log
Story JY-20836 in Jira Cloud
Preview in Slack
Open in browser
Share Story JY-20836
View conversations
More actions
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
loading…
Channel platform-inner-team
SlackFileEditViewGoHistoryWindowHelpDOCKERO ₴1DEV (docker)Last login: Sun May 10 21:10:26 on ttys013₴2APP (-zsh)883Poetry could not find a pyproject.toml file in /Users/lukas or its parentsPoetry could not find a pyproject.toml file in /Users/lukas or its parentslukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ l•-zshHomeDMsActivityLater..•More+lbl# Support Daily • in 1h 23 m100% C8 • Mon 11 May 13:37:53ED→Describe what you are looking forJiminny ...w Starrea& jiminny-x-integrati...8platform-inner-teamChannels# ai-chapter# alerts# backend# bugs# confusion-clinic# curiosity_lab# engineering# general# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...° Direct messagesR. Aneliya Angelova®. Galya Dimitrova DPetko Kashinski&o Stefka StoyanovaUnread mentionsa Nilalav lvanou*à platform-inner-team& 106 0• MessagesP Channel OverviewMore v+https://githurFriday, May 8th ~ oull/12056за ask jiminny reports datadog метрикиToday ~NewNikolay Yankov 12:51 PMима ли случаи някой да си е сетьпнал стотициили хиляди themes & topics?1 reply Today at 12:54 PMGalya Dimitrova1:03 PMСторитата за МСР които да видим после насрещата:• https://jiminny.atlassian.net/browse/JY-20833• https://jiminny.atlassian.net/browse/JY-20835• https://jiminny.atlassian.net/browse/JY-20834• https://jiminny.atlassian.net/browse/JY-208364 attachments •MCP › Enable users to get a list of call...Story JY-20833 in Jira CloudMCP › Enable users to get a list of de...Story JY-20835 in Jira CloudMCP › Authenticate each user for eas...Story JY-20834 in Jira CloudMessage & platform-inner-team+Аа...
|
17842
|
NULL
|
NULL
|
NULL
|
|
17846
|
781
|
0
|
2026-05-11T10:37:54.911360+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778495874911_m2.jpg...
|
Firefox
|
Screenpipe — Archive — Personal
|
True
|
app.screenpipe.lakylak.xyz
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
rireroyMIstory08Issues APP-TEEDID: 91c4f726167168c rireroyMIstory08Issues APP-TEEDID: 91c4f726167168clientendpointpayload••• @New Tab@Screenpipe - Archive7hours ago JSONJumo to: Hiahlial} catch (\Exception Se) {iT schlent->isunauchorizedexception(seSthis->logger->warning(' [Hubspot] Got 401 during pagination, attemptingObiect Jiminnv Services Crm Hubspot Cienthttps://api.hubapi.com/crm/v3/objects/contact/search &after: 70v filterGroups: [› < 1 item ?properties: l 14 items J,"Z ltemsObiect Jiminny Services Crm Hubspot Pagination PaginationState.pp/Services/Crm/ Hubspot/Pagination/HubspotPaginationService.php:51 in Jiminny Services Crm Hubspot Paginaaon/Services//Crm//Hubsnot/Client.nho:04 in Jiminnv Services Crm. Hubsnot Client-aetPacinatedData/app/Services/Crm/Hubspot/Service.php:1212 in Jiminny|Services\Crm\Hubspot\Service::Jiminny|Services\Crm\HubCalled from:/vendor/laravel/framework/src/Illuminate/Cache/Repository.php:564 in Illuminate\Cache\Repository:renJann/Servicas/Crm/Huhsnot /Sorvice nhn-1204 in Jiminnv|Servicoc|Crm|Hubsnat) Sorvico«matchRvNameapp//Services/Crm/CachedCrmServiceDecorator.php:167in Jiminny Services Crm\CachedCrmServiceDecorator:matlaon/Services//Crm//CrmActivitvService.ohn:227inJiminnv Services Crm.CrmActivitvService.fndCrmRecords/app/Services/Crm/CrmActivityService.php:139 in Jiminny\Services\Crm\CrmActivityService:updateParticipantsCrmllaoo/Services/crm/CrmActivitvService.ohv.81inJiminnvServices.Crm.CrmActivityService.uodateCrmDatalJann/Aobs/Crm/MatchActivitvCrm0ata.nhn:107inJiminnv|Johc\Crm|MatchActivitvCrmData«liminnv|Johc\CrmVcloCalled from: /vendor/laravel/framework/src/llluminate/Database/Concerns/ManadecTrancactions.nhn:35 in llluminateJann/2ohs/Crm//MatchActivitvCrmData.nhn.87inliminnvJohc\Crm.MatchActivitvCrmData«handlelaoo/Queue/Worker/Worker.oho:71 in Jiminnv\Queue Worker Worker-procescCalled from:/vendor/laravel//framework/src//llluminate/Queue/Worker.ohv:435inllluminate.Queue.Worker..runJobGuzzleHtto Excention ClientExcentionapp.screenolpe.lakylak.xyzscreenolpearchive.db • 12323.6MBAewVinevWeltkeikeelenaAl SummanAPP TIMELINE • CLICK TO PLAY - DRAG SCROLLBAR TO PANI4 30s[Firefox)0 CleanShot XQuickTime PlavelPhoSton07 / 05/ 2026...
|
NULL
|
8329385958050354580
|
NULL
|
click
|
ocr
|
NULL
|
rireroyMIstory08Issues APP-TEEDID: 91c4f726167168c rireroyMIstory08Issues APP-TEEDID: 91c4f726167168clientendpointpayload••• @New Tab@Screenpipe - Archive7hours ago JSONJumo to: Hiahlial} catch (\Exception Se) {iT schlent->isunauchorizedexception(seSthis->logger->warning(' [Hubspot] Got 401 during pagination, attemptingObiect Jiminnv Services Crm Hubspot Cienthttps://api.hubapi.com/crm/v3/objects/contact/search &after: 70v filterGroups: [› < 1 item ?properties: l 14 items J,"Z ltemsObiect Jiminny Services Crm Hubspot Pagination PaginationState.pp/Services/Crm/ Hubspot/Pagination/HubspotPaginationService.php:51 in Jiminny Services Crm Hubspot Paginaaon/Services//Crm//Hubsnot/Client.nho:04 in Jiminnv Services Crm. Hubsnot Client-aetPacinatedData/app/Services/Crm/Hubspot/Service.php:1212 in Jiminny|Services\Crm\Hubspot\Service::Jiminny|Services\Crm\HubCalled from:/vendor/laravel/framework/src/Illuminate/Cache/Repository.php:564 in Illuminate\Cache\Repository:renJann/Servicas/Crm/Huhsnot /Sorvice nhn-1204 in Jiminnv|Servicoc|Crm|Hubsnat) Sorvico«matchRvNameapp//Services/Crm/CachedCrmServiceDecorator.php:167in Jiminny Services Crm\CachedCrmServiceDecorator:matlaon/Services//Crm//CrmActivitvService.ohn:227inJiminnv Services Crm.CrmActivitvService.fndCrmRecords/app/Services/Crm/CrmActivityService.php:139 in Jiminny\Services\Crm\CrmActivityService:updateParticipantsCrmllaoo/Services/crm/CrmActivitvService.ohv.81inJiminnvServices.Crm.CrmActivityService.uodateCrmDatalJann/Aobs/Crm/MatchActivitvCrm0ata.nhn:107inJiminnv|Johc\Crm|MatchActivitvCrmData«liminnv|Johc\CrmVcloCalled from: /vendor/laravel/framework/src/llluminate/Database/Concerns/ManadecTrancactions.nhn:35 in llluminateJann/2ohs/Crm//MatchActivitvCrmData.nhn.87inliminnvJohc\Crm.MatchActivitvCrmData«handlelaoo/Queue/Worker/Worker.oho:71 in Jiminnv\Queue Worker Worker-procescCalled from:/vendor/laravel//framework/src//llluminate/Queue/Worker.ohv:435inllluminate.Queue.Worker..runJobGuzzleHtto Excention ClientExcentionapp.screenolpe.lakylak.xyzscreenolpearchive.db • 12323.6MBAewVinevWeltkeikeelenaAl SummanAPP TIMELINE • CLICK TO PLAY - DRAG SCROLLBAR TO PANI4 30s[Firefox)0 CleanShot XQuickTime PlavelPhoSton07 / 05/ 2026...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
17948
|
NULL
|
0
|
2026-05-11T10:42:39.462879+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778496159462_m1.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
True
|
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
3
68
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,
'policy' => $this->parsePolicy($e),
'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
{
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));
return 5;
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;
}
}
$policy = $this->parsePolicy($e);
if ($policy === 'TEN_SECONDLY_ROLLING') {
return 10;
}
if ($policy === 'SECONDLY') {
return 1;
}
if ($policy === 'DAILY_LIMIT') {
return 600;
}
$this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [
'exception_class' => get_class($e),
]);
return 10;
}
public function parsePolicy(Throwable $e): ?string
{
if (! method_exists($e, 'getResponseBody')) {
return null;
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return null;
}
$policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;
return is_string($policy) ? strtoupper($policy) : null;
}
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]);
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getResponseHeaders(), true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getResponseHeaders(), true));
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
// $deal = $this->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"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":"3","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"68","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 'policy' => $this->parsePolicy($e),\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));\n return 5;\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 $policy = $this->parsePolicy($e);\n if ($policy === 'TEN_SECONDLY_ROLLING') {\n return 10;\n }\n if ($policy === 'SECONDLY') {\n return 1;\n }\n if ($policy === 'DAILY_LIMIT') {\n return 600;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [\n 'exception_class' => get_class($e),\n ]);\n\n return 10;\n }\n\n public function parsePolicy(Throwable $e): ?string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return null;\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 null;\n }\n\n $policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;\n\n return is_string($policy) ? strtoupper($policy) : null;\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getResponseHeaders(), true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getResponseHeaders(), true));\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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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 'policy' => $this->parsePolicy($e),\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));\n return 5;\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 $policy = $this->parsePolicy($e);\n if ($policy === 'TEN_SECONDLY_ROLLING') {\n return 10;\n }\n if ($policy === 'SECONDLY') {\n return 1;\n }\n if ($policy === 'DAILY_LIMIT') {\n return 600;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [\n 'exception_class' => get_class($e),\n ]);\n\n return 10;\n }\n\n public function parsePolicy(Throwable $e): ?string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return null;\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 null;\n }\n\n $policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;\n\n return is_string($policy) ? strtoupper($policy) : null;\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getResponseHeaders(), true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getResponseHeaders(), true));\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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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":"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":"19","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-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","depth":4,"on_screen":true,"value":"[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","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}]...
|
1947971519123448970
|
6378618611371477348
|
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
3
68
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,
'policy' => $this->parsePolicy($e),
'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
{
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));
return 5;
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;
}
}
$policy = $this->parsePolicy($e);
if ($policy === 'TEN_SECONDLY_ROLLING') {
return 10;
}
if ($policy === 'SECONDLY') {
return 1;
}
if ($policy === 'DAILY_LIMIT') {
return 600;
}
$this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [
'exception_class' => get_class($e),
]);
return 10;
}
public function parsePolicy(Throwable $e): ?string
{
if (! method_exists($e, 'getResponseBody')) {
return null;
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return null;
}
$policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;
return is_string($policy) ? strtoupper($policy) : null;
}
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]);
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getResponseHeaders(), true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getResponseHeaders(), true));
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
// $deal = $this->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
17949
|
NULL
|
0
|
2026-05-11T10:42:39.462895+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778496159462_m2.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
True
|
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
3
68
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,
'policy' => $this->parsePolicy($e),
'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
{
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));
return 5;
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;
}
}
$policy = $this->parsePolicy($e);
if ($policy === 'TEN_SECONDLY_ROLLING') {
return 10;
}
if ($policy === 'SECONDLY') {
return 1;
}
if ($policy === 'DAILY_LIMIT') {
return 600;
}
$this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [
'exception_class' => get_class($e),
]);
return 10;
}
public function parsePolicy(Throwable $e): ?string
{
if (! method_exists($e, 'getResponseBody')) {
return null;
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return null;
}
$policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;
return is_string($policy) ? strtoupper($policy) : null;
}
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]);
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getResponseHeaders(), true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getResponseHeaders(), true));
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
// $deal = $this->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"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":"3","depth":4,"bounds":{"left":0.5515292,"top":0.15003991,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"68","depth":4,"bounds":{"left":0.56150264,"top":0.15003991,"width":0.010305851,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"bounds":{"left":0.5738032,"top":0.15003991,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.5834442,"top":0.14844373,"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.59075797,"top":0.14844373,"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 'policy' => $this->parsePolicy($e),\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));\n return 5;\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 $policy = $this->parsePolicy($e);\n if ($policy === 'TEN_SECONDLY_ROLLING') {\n return 10;\n }\n if ($policy === 'SECONDLY') {\n return 1;\n }\n if ($policy === 'DAILY_LIMIT') {\n return 600;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [\n 'exception_class' => get_class($e),\n ]);\n\n return 10;\n }\n\n public function parsePolicy(Throwable $e): ?string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return null;\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 null;\n }\n\n $policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;\n\n return is_string($policy) ? strtoupper($policy) : null;\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getResponseHeaders(), true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getResponseHeaders(), true));\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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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 'policy' => $this->parsePolicy($e),\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));\n return 5;\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 $policy = $this->parsePolicy($e);\n if ($policy === 'TEN_SECONDLY_ROLLING') {\n return 10;\n }\n if ($policy === 'SECONDLY') {\n return 1;\n }\n if ($policy === 'DAILY_LIMIT') {\n return 600;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [\n 'exception_class' => get_class($e),\n ]);\n\n return 10;\n }\n\n public function parsePolicy(Throwable $e): ?string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return null;\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 null;\n }\n\n $policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;\n\n return is_string($policy) ? strtoupper($policy) : null;\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getResponseHeaders(), true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getResponseHeaders(), true));\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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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":"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":"19","depth":4,"bounds":{"left":0.96276593,"top":0.07581804,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.9740692,"top":0.074221864,"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.074221864,"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-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","depth":4,"bounds":{"left":0.61702126,"top":0.0726257,"width":0.38297874,"height":0.9066241},"on_screen":true,"lines":[{"char_start":273,"char_count":32,"bounds":{"left":0.61702126,"top":0.0,"width":0.080119684,"height":0.014365523}},{"char_start":305,"char_count":79,"bounds":{"left":0.61702126,"top":0.0,"width":0.20212767,"height":0.014365523}},{"char_start":384,"char_count":18,"bounds":{"left":0.61702126,"top":0.0,"width":0.043882977,"height":0.014365523}},{"char_start":402,"char_count":21,"bounds":{"left":0.61702126,"top":0.0,"width":0.051861703,"height":0.014365523}},{"char_start":423,"char_count":48,"bounds":{"left":0.61702126,"top":0.0,"width":0.12167553,"height":0.014365523}},{"char_start":471,"char_count":72,"bounds":{"left":0.61702126,"top":0.0015961692,"width":0.18384309,"height":0.014365523}},{"char_start":543,"char_count":40,"bounds":{"left":0.61702126,"top":0.01915403,"width":0.10106383,"height":0.014365523}},{"char_start":583,"char_count":41,"bounds":{"left":0.61702126,"top":0.03671189,"width":0.10372341,"height":0.014365523}},{"char_start":624,"char_count":72,"bounds":{"left":0.61702126,"top":0.054269753,"width":0.18384309,"height":0.014365523}},{"char_start":696,"char_count":219,"bounds":{"left":0.61702126,"top":0.07182761,"width":0.38297874,"height":0.014365523}},{"char_start":915,"char_count":83,"bounds":{"left":0.61702126,"top":0.08938547,"width":0.21243352,"height":0.014365523}},{"char_start":998,"char_count":20,"bounds":{"left":0.61702126,"top":0.10694334,"width":0.04920213,"height":0.014365523}},{"char_start":1018,"char_count":17,"bounds":{"left":0.61702126,"top":0.1245012,"width":0.041223403,"height":0.014365523}},{"char_start":1035,"char_count":203,"bounds":{"left":0.61702126,"top":0.14205906,"width":0.38297874,"height":0.014365523}},{"char_start":1238,"char_count":22,"bounds":{"left":0.61702126,"top":0.15961692,"width":0.05418883,"height":0.014365523}},{"char_start":1260,"char_count":23,"bounds":{"left":0.61702126,"top":0.17717478,"width":0.056848403,"height":0.014365523}},{"char_start":1283,"char_count":10,"bounds":{"left":0.61702126,"top":0.19473264,"width":0.023271276,"height":0.014365523}},{"char_start":1293,"char_count":27,"bounds":{"left":0.61702126,"top":0.2122905,"width":0.06715426,"height":0.014365523}},{"char_start":1320,"char_count":26,"bounds":{"left":0.61702126,"top":0.22984837,"width":0.06482713,"height":0.014365523}},{"char_start":1346,"char_count":23,"bounds":{"left":0.61702126,"top":0.24740623,"width":0.056848403,"height":0.014365523}},{"char_start":1369,"char_count":28,"bounds":{"left":0.61702126,"top":0.26496407,"width":0.06981383,"height":0.014365523}},{"char_start":1397,"char_count":57,"bounds":{"left":0.61702126,"top":0.28252193,"width":0.14494681,"height":0.014365523}}],"value":"[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","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},{"role":"AXButton","text":"New File or Directory…","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":"AXButton","text":"Expand Selected","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":"AXButton","text":"Collapse All","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":"AXButton","text":"Options","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":"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}]...
|
1947971519123448970
|
6378618611371477348
|
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
3
68
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,
'policy' => $this->parsePolicy($e),
'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
{
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));
return 5;
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;
}
}
$policy = $this->parsePolicy($e);
if ($policy === 'TEN_SECONDLY_ROLLING') {
return 10;
}
if ($policy === 'SECONDLY') {
return 1;
}
if ($policy === 'DAILY_LIMIT') {
return 600;
}
$this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [
'exception_class' => get_class($e),
]);
return 10;
}
public function parsePolicy(Throwable $e): ?string
{
if (! method_exists($e, 'getResponseBody')) {
return null;
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return null;
}
$policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;
return is_string($policy) ? strtoupper($policy) : null;
}
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]);
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getResponseHeaders(), true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getResponseHeaders(), true));
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
// $deal = $this->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
17950
|
782
|
0
|
2026-05-11T10:42:48.128824+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778496168128_m1.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
True
|
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
4
71
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,
'policy' => $this->parsePolicy($e),
'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
{
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));
return 5;
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;
}
}
$policy = $this->parsePolicy($e);
if ($policy === 'TEN_SECONDLY_ROLLING') {
return 10;
}
if ($policy === 'SECONDLY') {
return 1;
}
if ($policy === 'DAILY_LIMIT') {
return 600;
}
$this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [
'exception_class' => get_class($e),
]);
return 10;
}
public function parsePolicy(Throwable $e): ?string
{
if (! method_exists($e, 'getResponseBody')) {
return null;
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return null;
}
$policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;
return is_string($policy) ? strtoupper($policy) : null;
}
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]);
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getResponseHeaders(), true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getHeaders(), true));
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
// $deal = $this->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"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":"4","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"71","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 'policy' => $this->parsePolicy($e),\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));\n return 5;\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 $policy = $this->parsePolicy($e);\n if ($policy === 'TEN_SECONDLY_ROLLING') {\n return 10;\n }\n if ($policy === 'SECONDLY') {\n return 1;\n }\n if ($policy === 'DAILY_LIMIT') {\n return 600;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [\n 'exception_class' => get_class($e),\n ]);\n\n return 10;\n }\n\n public function parsePolicy(Throwable $e): ?string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return null;\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 null;\n }\n\n $policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;\n\n return is_string($policy) ? strtoupper($policy) : null;\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getResponseHeaders(), true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getHeaders(), true));\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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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 'policy' => $this->parsePolicy($e),\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));\n return 5;\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 $policy = $this->parsePolicy($e);\n if ($policy === 'TEN_SECONDLY_ROLLING') {\n return 10;\n }\n if ($policy === 'SECONDLY') {\n return 1;\n }\n if ($policy === 'DAILY_LIMIT') {\n return 600;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [\n 'exception_class' => get_class($e),\n ]);\n\n return 10;\n }\n\n public function parsePolicy(Throwable $e): ?string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return null;\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 null;\n }\n\n $policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;\n\n return is_string($policy) ? strtoupper($policy) : null;\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getResponseHeaders(), true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getHeaders(), true));\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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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":"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":"19","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-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","depth":4,"on_screen":true,"value":"[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","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}]...
|
4531694917553906031
|
6378618611371477348
|
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
4
71
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,
'policy' => $this->parsePolicy($e),
'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
{
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));
return 5;
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;
}
}
$policy = $this->parsePolicy($e);
if ($policy === 'TEN_SECONDLY_ROLLING') {
return 10;
}
if ($policy === 'SECONDLY') {
return 1;
}
if ($policy === 'DAILY_LIMIT') {
return 600;
}
$this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [
'exception_class' => get_class($e),
]);
return 10;
}
public function parsePolicy(Throwable $e): ?string
{
if (! method_exists($e, 'getResponseBody')) {
return null;
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return null;
}
$policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;
return is_string($policy) ? strtoupper($policy) : null;
}
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]);
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getResponseHeaders(), true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getHeaders(), true));
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
// $deal = $this->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
17948
|
NULL
|
NULL
|
NULL
|
|
17951
|
783
|
0
|
2026-05-11T10:42:48.138861+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778496168138_m2.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
True
|
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
4
71
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,
'policy' => $this->parsePolicy($e),
'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
{
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));
return 5;
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;
}
}
$policy = $this->parsePolicy($e);
if ($policy === 'TEN_SECONDLY_ROLLING') {
return 10;
}
if ($policy === 'SECONDLY') {
return 1;
}
if ($policy === 'DAILY_LIMIT') {
return 600;
}
$this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [
'exception_class' => get_class($e),
]);
return 10;
}
public function parsePolicy(Throwable $e): ?string
{
if (! method_exists($e, 'getResponseBody')) {
return null;
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return null;
}
$policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;
return is_string($policy) ? strtoupper($policy) : null;
}
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]);
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getResponseHeaders(), true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getHeaders(), true));
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
// $deal = $this->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"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":"4","depth":4,"bounds":{"left":0.5525266,"top":0.15003991,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"71","depth":4,"bounds":{"left":0.5625,"top":0.15003991,"width":0.00930851,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"bounds":{"left":0.5738032,"top":0.15003991,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.5834442,"top":0.14844373,"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.59075797,"top":0.14844373,"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 'policy' => $this->parsePolicy($e),\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));\n return 5;\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 $policy = $this->parsePolicy($e);\n if ($policy === 'TEN_SECONDLY_ROLLING') {\n return 10;\n }\n if ($policy === 'SECONDLY') {\n return 1;\n }\n if ($policy === 'DAILY_LIMIT') {\n return 600;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [\n 'exception_class' => get_class($e),\n ]);\n\n return 10;\n }\n\n public function parsePolicy(Throwable $e): ?string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return null;\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 null;\n }\n\n $policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;\n\n return is_string($policy) ? strtoupper($policy) : null;\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getResponseHeaders(), true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getHeaders(), true));\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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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 'policy' => $this->parsePolicy($e),\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));\n return 5;\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 $policy = $this->parsePolicy($e);\n if ($policy === 'TEN_SECONDLY_ROLLING') {\n return 10;\n }\n if ($policy === 'SECONDLY') {\n return 1;\n }\n if ($policy === 'DAILY_LIMIT') {\n return 600;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [\n 'exception_class' => get_class($e),\n ]);\n\n return 10;\n }\n\n public function parsePolicy(Throwable $e): ?string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return null;\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 null;\n }\n\n $policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;\n\n return is_string($policy) ? strtoupper($policy) : null;\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getResponseHeaders(), true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getHeaders(), true));\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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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":"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":"19","depth":4,"bounds":{"left":0.96276593,"top":0.07581804,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.9740692,"top":0.074221864,"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.074221864,"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-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","depth":4,"bounds":{"left":0.61702126,"top":0.0726257,"width":0.38297874,"height":0.9066241},"on_screen":true,"lines":[{"char_start":273,"char_count":32,"bounds":{"left":0.61702126,"top":0.0,"width":0.080119684,"height":0.014365523}},{"char_start":305,"char_count":79,"bounds":{"left":0.61702126,"top":0.0,"width":0.20212767,"height":0.014365523}},{"char_start":384,"char_count":18,"bounds":{"left":0.61702126,"top":0.0,"width":0.043882977,"height":0.014365523}},{"char_start":402,"char_count":21,"bounds":{"left":0.61702126,"top":0.0,"width":0.051861703,"height":0.014365523}},{"char_start":423,"char_count":48,"bounds":{"left":0.61702126,"top":0.0,"width":0.12167553,"height":0.014365523}},{"char_start":471,"char_count":72,"bounds":{"left":0.61702126,"top":0.0015961692,"width":0.18384309,"height":0.014365523}},{"char_start":543,"char_count":40,"bounds":{"left":0.61702126,"top":0.01915403,"width":0.10106383,"height":0.014365523}},{"char_start":583,"char_count":41,"bounds":{"left":0.61702126,"top":0.03671189,"width":0.10372341,"height":0.014365523}},{"char_start":624,"char_count":72,"bounds":{"left":0.61702126,"top":0.054269753,"width":0.18384309,"height":0.014365523}},{"char_start":696,"char_count":219,"bounds":{"left":0.61702126,"top":0.07182761,"width":0.38297874,"height":0.014365523}},{"char_start":915,"char_count":83,"bounds":{"left":0.61702126,"top":0.08938547,"width":0.21243352,"height":0.014365523}},{"char_start":998,"char_count":20,"bounds":{"left":0.61702126,"top":0.10694334,"width":0.04920213,"height":0.014365523}},{"char_start":1018,"char_count":17,"bounds":{"left":0.61702126,"top":0.1245012,"width":0.041223403,"height":0.014365523}},{"char_start":1035,"char_count":203,"bounds":{"left":0.61702126,"top":0.14205906,"width":0.38297874,"height":0.014365523}},{"char_start":1238,"char_count":22,"bounds":{"left":0.61702126,"top":0.15961692,"width":0.05418883,"height":0.014365523}},{"char_start":1260,"char_count":23,"bounds":{"left":0.61702126,"top":0.17717478,"width":0.056848403,"height":0.014365523}},{"char_start":1283,"char_count":10,"bounds":{"left":0.61702126,"top":0.19473264,"width":0.023271276,"height":0.014365523}},{"char_start":1293,"char_count":27,"bounds":{"left":0.61702126,"top":0.2122905,"width":0.06715426,"height":0.014365523}},{"char_start":1320,"char_count":26,"bounds":{"left":0.61702126,"top":0.22984837,"width":0.06482713,"height":0.014365523}},{"char_start":1346,"char_count":23,"bounds":{"left":0.61702126,"top":0.24740623,"width":0.056848403,"height":0.014365523}},{"char_start":1369,"char_count":28,"bounds":{"left":0.61702126,"top":0.26496407,"width":0.06981383,"height":0.014365523}},{"char_start":1397,"char_count":57,"bounds":{"left":0.61702126,"top":0.28252193,"width":0.14494681,"height":0.014365523}}],"value":"[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","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},{"role":"AXButton","text":"New File or Directory…","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":"AXButton","text":"Expand Selected","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":"AXButton","text":"Collapse All","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":"AXButton","text":"Options","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":"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}]...
|
4531694917553906031
|
6378618611371477348
|
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
4
71
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,
'policy' => $this->parsePolicy($e),
'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
{
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));
return 5;
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;
}
}
$policy = $this->parsePolicy($e);
if ($policy === 'TEN_SECONDLY_ROLLING') {
return 10;
}
if ($policy === 'SECONDLY') {
return 1;
}
if ($policy === 'DAILY_LIMIT') {
return 600;
}
$this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [
'exception_class' => get_class($e),
]);
return 10;
}
public function parsePolicy(Throwable $e): ?string
{
if (! method_exists($e, 'getResponseBody')) {
return null;
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return null;
}
$policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;
return is_string($policy) ? strtoupper($policy) : null;
}
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]);
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getResponseHeaders(), true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response->getHeaders(), true));
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
// $deal = $this->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
17949
|
NULL
|
NULL
|
NULL
|
|
18063
|
NULL
|
0
|
2026-05-11T10:47:37.419299+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778496457419_m1.jpg...
|
PhpStorm
|
faVsco.js – custom.log
|
True
|
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
3
70
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,
'policy' => $this->parsePolicy($e),
'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
{
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));
return 5;
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;
}
}
$policy = $this->parsePolicy($e);
if ($policy === 'TEN_SECONDLY_ROLLING') {
return 10;
}
if ($policy === 'SECONDLY') {
return 1;
}
if ($policy === 'DAILY_LIMIT') {
return 600;
}
$this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [
'exception_class' => get_class($e),
]);
return 10;
}
public function parsePolicy(Throwable $e): ?string
{
if (! method_exists($e, 'getResponseBody')) {
return null;
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return null;
}
$policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;
return is_string($policy) ? strtoupper($policy) : null;
}
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]);
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$headers ' . PHP_EOL . print_r($response->getHeaders(), true));
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
// $deal = $this->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"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":"3","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"70","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 'policy' => $this->parsePolicy($e),\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));\n return 5;\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 $policy = $this->parsePolicy($e);\n if ($policy === 'TEN_SECONDLY_ROLLING') {\n return 10;\n }\n if ($policy === 'SECONDLY') {\n return 1;\n }\n if ($policy === 'DAILY_LIMIT') {\n return 600;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [\n 'exception_class' => get_class($e),\n ]);\n\n return 10;\n }\n\n public function parsePolicy(Throwable $e): ?string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return null;\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 null;\n }\n\n $policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;\n\n return is_string($policy) ? strtoupper($policy) : null;\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$headers ' . PHP_EOL . print_r($response->getHeaders(), true));\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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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 'policy' => $this->parsePolicy($e),\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));\n return 5;\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 $policy = $this->parsePolicy($e);\n if ($policy === 'TEN_SECONDLY_ROLLING') {\n return 10;\n }\n if ($policy === 'SECONDLY') {\n return 1;\n }\n if ($policy === 'DAILY_LIMIT') {\n return 600;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [\n 'exception_class' => get_class($e),\n ]);\n\n return 10;\n }\n\n public function parsePolicy(Throwable $e): ?string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return null;\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 null;\n }\n\n $policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;\n\n return is_string($policy) ? strtoupper($policy) : null;\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$headers ' . PHP_EOL . print_r($response->getHeaders(), true));\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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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":"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":"19","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-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","depth":4,"on_screen":true,"value":"[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","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}]...
|
-5898935518848725433
|
6378618611371477092
|
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
3
70
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,
'policy' => $this->parsePolicy($e),
'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
{
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));
return 5;
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;
}
}
$policy = $this->parsePolicy($e);
if ($policy === 'TEN_SECONDLY_ROLLING') {
return 10;
}
if ($policy === 'SECONDLY') {
return 1;
}
if ($policy === 'DAILY_LIMIT') {
return 600;
}
$this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [
'exception_class' => get_class($e),
]);
return 10;
}
public function parsePolicy(Throwable $e): ?string
{
if (! method_exists($e, 'getResponseBody')) {
return null;
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return null;
}
$policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;
return is_string($policy) ? strtoupper($policy) : null;
}
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]);
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$headers ' . PHP_EOL . print_r($response->getHeaders(), true));
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
// $deal = $this->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18064
|
NULL
|
0
|
2026-05-11T10:47:37.427588+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778496457427_m2.jpg...
|
PhpStorm
|
faVsco.js – custom.log
|
True
|
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
3
70
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,
'policy' => $this->parsePolicy($e),
'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
{
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));
return 5;
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;
}
}
$policy = $this->parsePolicy($e);
if ($policy === 'TEN_SECONDLY_ROLLING') {
return 10;
}
if ($policy === 'SECONDLY') {
return 1;
}
if ($policy === 'DAILY_LIMIT') {
return 600;
}
$this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [
'exception_class' => get_class($e),
]);
return 10;
}
public function parsePolicy(Throwable $e): ?string
{
if (! method_exists($e, 'getResponseBody')) {
return null;
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return null;
}
$policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;
return is_string($policy) ? strtoupper($policy) : null;
}
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]);
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$headers ' . PHP_EOL . print_r($response->getHeaders(), true));
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
// $deal = $this->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project...
|
[{"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":"3","depth":4,"bounds":{"left":0.41156915,"top":0.19952115,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"70","depth":4,"bounds":{"left":0.42154256,"top":0.19952115,"width":0.009973404,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"bounds":{"left":0.43351063,"top":0.19952115,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.4431516,"top":0.19792499,"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.4504654,"top":0.19792499,"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 'policy' => $this->parsePolicy($e),\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));\n return 5;\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 $policy = $this->parsePolicy($e);\n if ($policy === 'TEN_SECONDLY_ROLLING') {\n return 10;\n }\n if ($policy === 'SECONDLY') {\n return 1;\n }\n if ($policy === 'DAILY_LIMIT') {\n return 600;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [\n 'exception_class' => get_class($e),\n ]);\n\n return 10;\n }\n\n public function parsePolicy(Throwable $e): ?string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return null;\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 null;\n }\n\n $policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;\n\n return is_string($policy) ? strtoupper($policy) : null;\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$headers ' . PHP_EOL . print_r($response->getHeaders(), true));\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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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 'policy' => $this->parsePolicy($e),\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));\n return 5;\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 $policy = $this->parsePolicy($e);\n if ($policy === 'TEN_SECONDLY_ROLLING') {\n return 10;\n }\n if ($policy === 'SECONDLY') {\n return 1;\n }\n if ($policy === 'DAILY_LIMIT') {\n return 600;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [\n 'exception_class' => get_class($e),\n ]);\n\n return 10;\n }\n\n public function parsePolicy(Throwable $e): ?string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return null;\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 null;\n }\n\n $policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;\n\n return is_string($policy) ? strtoupper($policy) : null;\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$headers ' . PHP_EOL . print_r($response->getHeaders(), true));\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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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":"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":"19","depth":4,"bounds":{"left":0.7124335,"top":0.10055866,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.7237367,"top":0.09896249,"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.73105055,"top":0.09896249,"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-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","depth":4,"bounds":{"left":0.47672874,"top":0.09736632,"width":0.52327126,"height":0.8818835},"on_screen":true,"lines":[{"char_start":207,"char_count":30,"bounds":{"left":0.47672874,"top":0.0,"width":0.07513298,"height":0.014365523}},{"char_start":237,"char_count":36,"bounds":{"left":0.47672874,"top":0.0,"width":0.09075798,"height":0.014365523}},{"char_start":273,"char_count":32,"bounds":{"left":0.47672874,"top":0.0,"width":0.080119684,"height":0.014365523}},{"char_start":305,"char_count":79,"bounds":{"left":0.47672874,"top":0.0,"width":0.20212767,"height":0.014365523}},{"char_start":384,"char_count":18,"bounds":{"left":0.47672874,"top":0.0,"width":0.043882977,"height":0.014365523}},{"char_start":402,"char_count":21,"bounds":{"left":0.47672874,"top":0.0,"width":0.051861703,"height":0.014365523}},{"char_start":423,"char_count":48,"bounds":{"left":0.47672874,"top":0.008778931,"width":0.12167553,"height":0.014365523}},{"char_start":471,"char_count":72,"bounds":{"left":0.47672874,"top":0.026336791,"width":0.18384309,"height":0.014365523}},{"char_start":543,"char_count":40,"bounds":{"left":0.47672874,"top":0.043894652,"width":0.10106383,"height":0.014365523}},{"char_start":583,"char_count":41,"bounds":{"left":0.47672874,"top":0.061452515,"width":0.10372341,"height":0.014365523}},{"char_start":624,"char_count":72,"bounds":{"left":0.47672874,"top":0.079010375,"width":0.18384309,"height":0.014365523}},{"char_start":696,"char_count":219,"bounds":{"left":0.47672874,"top":0.096568234,"width":0.52327126,"height":0.014365523}},{"char_start":915,"char_count":83,"bounds":{"left":0.47672874,"top":0.11412609,"width":0.21243352,"height":0.014365523}},{"char_start":998,"char_count":20,"bounds":{"left":0.47672874,"top":0.13168396,"width":0.04920213,"height":0.014365523}},{"char_start":1018,"char_count":17,"bounds":{"left":0.47672874,"top":0.14924182,"width":0.041223403,"height":0.014365523}},{"char_start":1035,"char_count":203,"bounds":{"left":0.47672874,"top":0.16679968,"width":0.52327126,"height":0.014365523}},{"char_start":1238,"char_count":22,"bounds":{"left":0.47672874,"top":0.18435754,"width":0.05418883,"height":0.014365523}},{"char_start":1260,"char_count":23,"bounds":{"left":0.47672874,"top":0.2019154,"width":0.056848403,"height":0.014365523}},{"char_start":1283,"char_count":10,"bounds":{"left":0.47672874,"top":0.21947326,"width":0.023271276,"height":0.014365523}},{"char_start":1293,"char_count":27,"bounds":{"left":0.47672874,"top":0.23703113,"width":0.06715426,"height":0.014365523}},{"char_start":1320,"char_count":26,"bounds":{"left":0.47672874,"top":0.254589,"width":0.06482713,"height":0.014365523}},{"char_start":1346,"char_count":23,"bounds":{"left":0.47672874,"top":0.27214685,"width":0.056848403,"height":0.014365523}},{"char_start":1369,"char_count":28,"bounds":{"left":0.47672874,"top":0.2897047,"width":0.06981383,"height":0.014365523}},{"char_start":1397,"char_count":57,"bounds":{"left":0.47672874,"top":0.30726257,"width":0.14494681,"height":0.014365523}}],"value":"[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","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}]...
|
-753073813067891959
|
6378618611371477092
|
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
3
70
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,
'policy' => $this->parsePolicy($e),
'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
{
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));
return 5;
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;
}
}
$policy = $this->parsePolicy($e);
if ($policy === 'TEN_SECONDLY_ROLLING') {
return 10;
}
if ($policy === 'SECONDLY') {
return 1;
}
if ($policy === 'DAILY_LIMIT') {
return 600;
}
$this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [
'exception_class' => get_class($e),
]);
return 10;
}
public function parsePolicy(Throwable $e): ?string
{
if (! method_exists($e, 'getResponseBody')) {
return null;
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return null;
}
$policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;
return is_string($policy) ? strtoupper($policy) : null;
}
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]);
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$headers ' . PHP_EOL . print_r($response->getHeaders(), true));
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
// $deal = $this->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project...
|
18061
|
NULL
|
NULL
|
NULL
|
|
18065
|
785
|
0
|
2026-05-11T10:47:57.484016+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778496477484_m2.jpg...
|
PhpStorm
|
faVsco.js – custom.log
|
True
|
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
3
70
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,
'policy' => $this->parsePolicy($e),
'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
{
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));
return 5;
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;
}
}
$policy = $this->parsePolicy($e);
if ($policy === 'TEN_SECONDLY_ROLLING') {
return 10;
}
if ($policy === 'SECONDLY') {
return 1;
}
if ($policy === 'DAILY_LIMIT') {
return 600;
}
$this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [
'exception_class' => get_class($e),
]);
return 10;
}
public function parsePolicy(Throwable $e): ?string
{
if (! method_exists($e, 'getResponseBody')) {
return null;
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return null;
}
$policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;
return is_string($policy) ? strtoupper($policy) : null;
}
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]);
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$headers ' . PHP_EOL . print_r($response->getHeaders(), true));
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
// $deal = $this->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"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":"3","depth":4,"bounds":{"left":0.41156915,"top":0.19952115,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"70","depth":4,"bounds":{"left":0.42154256,"top":0.19952115,"width":0.009973404,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"bounds":{"left":0.43351063,"top":0.19952115,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.4431516,"top":0.19792499,"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.4504654,"top":0.19792499,"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 'policy' => $this->parsePolicy($e),\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));\n return 5;\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 $policy = $this->parsePolicy($e);\n if ($policy === 'TEN_SECONDLY_ROLLING') {\n return 10;\n }\n if ($policy === 'SECONDLY') {\n return 1;\n }\n if ($policy === 'DAILY_LIMIT') {\n return 600;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [\n 'exception_class' => get_class($e),\n ]);\n\n return 10;\n }\n\n public function parsePolicy(Throwable $e): ?string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return null;\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 null;\n }\n\n $policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;\n\n return is_string($policy) ? strtoupper($policy) : null;\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$headers ' . PHP_EOL . print_r($response->getHeaders(), true));\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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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 'policy' => $this->parsePolicy($e),\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));\n return 5;\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 $policy = $this->parsePolicy($e);\n if ($policy === 'TEN_SECONDLY_ROLLING') {\n return 10;\n }\n if ($policy === 'SECONDLY') {\n return 1;\n }\n if ($policy === 'DAILY_LIMIT') {\n return 600;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [\n 'exception_class' => get_class($e),\n ]);\n\n return 10;\n }\n\n public function parsePolicy(Throwable $e): ?string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return null;\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 null;\n }\n\n $policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;\n\n return is_string($policy) ? strtoupper($policy) : null;\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 \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));\n \\Illuminate\\Support\\Facades\\Log::channel('custom_channel')->info('$headers ' . PHP_EOL . print_r($response->getHeaders(), true));\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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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":"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":"19","depth":4,"bounds":{"left":0.7124335,"top":0.10055866,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.7237367,"top":0.09896249,"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.73105055,"top":0.09896249,"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-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","depth":4,"bounds":{"left":0.47672874,"top":0.09736632,"width":0.52327126,"height":0.8818835},"on_screen":true,"lines":[{"char_start":207,"char_count":30,"bounds":{"left":0.47672874,"top":0.0,"width":0.07513298,"height":0.014365523}},{"char_start":237,"char_count":36,"bounds":{"left":0.47672874,"top":0.0,"width":0.09075798,"height":0.014365523}},{"char_start":273,"char_count":32,"bounds":{"left":0.47672874,"top":0.0,"width":0.080119684,"height":0.014365523}},{"char_start":305,"char_count":79,"bounds":{"left":0.47672874,"top":0.0,"width":0.20212767,"height":0.014365523}},{"char_start":384,"char_count":18,"bounds":{"left":0.47672874,"top":0.0,"width":0.043882977,"height":0.014365523}},{"char_start":402,"char_count":21,"bounds":{"left":0.47672874,"top":0.0,"width":0.051861703,"height":0.014365523}},{"char_start":423,"char_count":48,"bounds":{"left":0.47672874,"top":0.008778931,"width":0.12167553,"height":0.014365523}},{"char_start":471,"char_count":72,"bounds":{"left":0.47672874,"top":0.026336791,"width":0.18384309,"height":0.014365523}},{"char_start":543,"char_count":40,"bounds":{"left":0.47672874,"top":0.043894652,"width":0.10106383,"height":0.014365523}},{"char_start":583,"char_count":41,"bounds":{"left":0.47672874,"top":0.061452515,"width":0.10372341,"height":0.014365523}},{"char_start":624,"char_count":72,"bounds":{"left":0.47672874,"top":0.079010375,"width":0.18384309,"height":0.014365523}},{"char_start":696,"char_count":219,"bounds":{"left":0.47672874,"top":0.096568234,"width":0.52327126,"height":0.014365523}},{"char_start":915,"char_count":83,"bounds":{"left":0.47672874,"top":0.11412609,"width":0.21243352,"height":0.014365523}},{"char_start":998,"char_count":20,"bounds":{"left":0.47672874,"top":0.13168396,"width":0.04920213,"height":0.014365523}},{"char_start":1018,"char_count":17,"bounds":{"left":0.47672874,"top":0.14924182,"width":0.041223403,"height":0.014365523}},{"char_start":1035,"char_count":203,"bounds":{"left":0.47672874,"top":0.16679968,"width":0.52327126,"height":0.014365523}},{"char_start":1238,"char_count":22,"bounds":{"left":0.47672874,"top":0.18435754,"width":0.05418883,"height":0.014365523}},{"char_start":1260,"char_count":23,"bounds":{"left":0.47672874,"top":0.2019154,"width":0.056848403,"height":0.014365523}},{"char_start":1283,"char_count":10,"bounds":{"left":0.47672874,"top":0.21947326,"width":0.023271276,"height":0.014365523}},{"char_start":1293,"char_count":27,"bounds":{"left":0.47672874,"top":0.23703113,"width":0.06715426,"height":0.014365523}},{"char_start":1320,"char_count":26,"bounds":{"left":0.47672874,"top":0.254589,"width":0.06482713,"height":0.014365523}},{"char_start":1346,"char_count":23,"bounds":{"left":0.47672874,"top":0.27214685,"width":0.056848403,"height":0.014365523}},{"char_start":1369,"char_count":28,"bounds":{"left":0.47672874,"top":0.2897047,"width":0.06981383,"height":0.014365523}},{"char_start":1397,"char_count":57,"bounds":{"left":0.47672874,"top":0.30726257,"width":0.14494681,"height":0.014365523}}],"value":"[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","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},{"role":"AXButton","text":"New File or Directory…","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":"AXButton","text":"Expand Selected","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":"AXButton","text":"Collapse All","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":"AXButton","text":"Options","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":"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}]...
|
-5898935518848725433
|
6378618611371477092
|
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
3
70
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,
'policy' => $this->parsePolicy($e),
'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
{
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$e ' . PHP_EOL . print_r($e, true));
return 5;
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;
}
}
$policy = $this->parsePolicy($e);
if ($policy === 'TEN_SECONDLY_ROLLING') {
return 10;
}
if ($policy === 'SECONDLY') {
return 1;
}
if ($policy === 'DAILY_LIMIT') {
return 600;
}
$this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [
'exception_class' => get_class($e),
]);
return 10;
}
public function parsePolicy(Throwable $e): ?string
{
if (! method_exists($e, 'getResponseBody')) {
return null;
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return null;
}
$policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;
return is_string($policy) ? strtoupper($policy) : null;
}
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]);
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$response ' . PHP_EOL . print_r($response, true));
\Illuminate\Support\Facades\Log::channel('custom_channel')->info('$headers ' . PHP_EOL . print_r($response->getHeaders(), true));
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
// $deal = $this->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18066
|
784
|
0
|
2026-05-11T10:47:58.152869+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778496478152_m1.jpg...
|
PhpStorm
|
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Undo
Redo
Cut
Copy
Paste
Paste and Match Style
Sel Undo
Redo
Cut
Copy
Paste
Paste and Match Style
Select All...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"Undo","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.065972224,"height":0.024444444},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Redo","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.065972224,"height":0.024444444},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Cut","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.065972224,"height":0.024444444},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Copy","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.065972224,"height":0.024444444},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Paste","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.065972224,"height":0.024444444},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Paste and Match Style","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.065972224,"height":0.024444444},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Select All","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.065972224,"height":0.024444444},"on_screen":false,"role_description":"text"}]...
|
1892201816994965258
|
7802479394038844655
|
click
|
hybrid
|
NULL
|
Undo
Redo
Cut
Copy
Paste
Paste and Match Style
Sel Undo
Redo
Cut
Copy
Paste
Paste and Match Style
Select All
SlackFileEditViewGoHistoryWindowHelpDOCKERO ₴1DEV (docker)$2APP (-zsh)883viewsjiminny-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:jiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedworker-conferences:worker-conferences_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00: stoppedworker-emails:worker-emails_00:worker-nudges:worker-nudges_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00: stoppedworker-crm-sync:worker-crm-sync_00: stoppedartisan-schedule:artisan-schedule_00: stoppedworker-es-update:worker-es-update_00: stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_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:jiminny-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 MatchActivityCrmData jobs (portal=2)Done. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.root@docker_lamp_1:/home/jiminny# php artisan jiminny:debugDispatching 100 MatchActivityCrmData jobs (portal=2)Done. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.root@docker_lamp_1:/home/jiminny# ]DEV (d)-zshHomeDMsActivityFilesLater...MorelallSupport Daily • in 1h 13 m100% <78• Mon 11 May 13:47:57ED→Describe what you are looking forJiminny ...# contusion-clinic# curiosity_lab# engineering# general# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...ToastHomeMessages^ Direct messages®. Aneliya Angelova®. Galya Dimitrova& Petko Kashinski&. Stefka StoyanovaVasil Vasilev OlC. Nikolay IvanovAneliya Angelova, ...Stoyan Tanev®. VesE Lukas Kovalik y... 0AboutiminnyFriday, May 8th ~Added by Toast for GitHubToday ~Toast APP10:00 AMReviewapp#12059 Jy 20820 es reindexstream model hydration2 days old • 12 files changed •@Vasil VasilevAdded by Toast for GitHubResolve Conflictsapp#11443 Test hublets latency5 months old • 20 files changed#11327 JY-19501 webhookbased opportunity syncShow moreAdded by Toast for GitHubNeeds Loveapp#12024 JY-20773 fix user pilottracking ofr automated reportgenerated12 days old • 1 file changedE:: AppsMessage ToastJira CloudToast+AaConala CalaNew...
|
18063
|
NULL
|
NULL
|
NULL
|
|
18098
|
NULL
|
0
|
2026-05-11T10:52:49.664324+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778496769664_m2.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
True
|
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,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
8956692732016058251
|
-8204340751569409078
|
idle
|
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
PhostormVIewINavicareCodeFV faVsco.js°9 JY-20725-handle-HS-search-rate-limiProiect© BatchSyncCollectole balchsynckealssec clientoneo closedDealstagesso RematchActivityonCrmObiectDetach.pngDealrielasservice.g©MatchCrmData.phpc)Decorateacuivilv.or© FieldDefinitions.phrC) CrmObiectsResolver.pho() ProviderRateLimiter.phpC) PaqinationContia.phpC) FieldT vpeconverteclass Cuient extends BasecLient imolements Hubspotcuientinterfacee Hubspotclientinterc) Hubspotlokenman© PayloadBuilder.phpC) RemotecrmobiectnP ResponseNormalize122123124125c) Service,onoC) SvncFieldAction.ohC) SvncRelatedActivitC) WebhookSvncBatcl129v MintearationAorM Acceccors130ConfigD DTO• M SiltersD Jobs• M ProcnectSearchStr.132W service Iralts© DataClient.php© DecorateActivity.ph© LocalSearch.php© LocalSearchInterfac© RemoteSearch.php137139c) Service.phpv D Listeners© ConvertLeadActivitc) PurceLookuocache> M Metadata> Miarationi> = Pioedrivev Salesforce147• D FieldsM OnnortunitvMatcheMOnnortunitvSvneStlM ProsneetSearchStr.149150151) M ServiceTraitcC) Client nhr@ DecorateActivity.ph154. Delete@biectsTrait© FieldDefinitions.php© PayloadBuilder.php© Profile.php© QueryBuilder.php156157159Tacts naccod. 12 (50 minutes aao)public function isHubspotRateLimit(Throwable $e): boolse inscanceotGuzzLehcco cxcepcion kequescexcepclonrecurn inu se->geclode === 427*nubuic function narseRetrvafterhrowable Selr intIlluminate\ Support\ Facades\Loq::channel('custom_channel')->info('$e' . PHP EOL . print r($e, true) Accent Reiectif (method exists($e.method: 'qetResponseHeaders')){Sheaders = $e->qetResponseHeadersO ?: [1:Svalue = Sheaders['Retry-After'] ?? Sheaders['retry-after'] ?? null:if (is array(Svalue)) {Svalue = Svaluelol ?? null;if (is numeric(Svalue)) {return int svalue:Spolicy = $this->parsePolicy($e);if Spolicv =a='TEN SECONDLY ROLLING') ≤return 10:if ($policy === 'SECONDLY') {neturn 1if (Spolicy === 'DAILY_LIMIT') {neturn 600,Sthis->loq->warning('[Hubspot] No retry-after header or policy name found, using default'. ['exception class' => qet class($e).f 1of 4 edits JAccept File &~ X Reject File 4% €# Support Daily - in 1h 8 m100% 5• Mon 11 May 13:52:49HandleHubspotRateLimitTest v+0 ..4 HS_local (iminny@localhost]# console [PKoD)CascadeA console (EU]A console [STAGING][2026-05-07 14:21:15] local.INF0: [Hubspot] DEBUG Getting headers {"Vace".L"Inu,or May 2020 14.21.15 bMlJe Hubspot Rate Limitv.19ng. 1 siatus • emot , message • fou llave leacheeserver-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",Riaht — the actual HubSpot 429 body has no policyName field, just message textand errortype. My parsePolicy waslookina for fiolde that don't eyict)"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"J,"Set-Cookie":["__cf_bm=StUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTg07-Mav-26 14•51•15 GMT• domain=hubani.com• HttnOnlv: Secuno• SameSite=Nono".Let me also revert your debug instrumentation while I'm at it\"url\":"https:|\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEg?Now let me add tests tor parsePolicy to lock in the mes\"group\":\"cf-nel\".\"max_age\":604800}"],"NEL".L"1Let me run the existina tests to verifv nothina broke:"Server": ["cloudflare"]}} {"correlation id":"95236535-ec98-4541-b92a-adfa73b69eab".--no-coverage"trace_1d":"C/ab8565-905t-4604-9405-0e5b551e5545'}Run&w Skip11|1aon/Services/Crm/Hubsoot/m Client.ohv +19 -6Ask anvthina (84L)÷ « CodeClaude Onus 4.7 MediumView all* Reiect allAccent allWN Windsurf Toams 122-1UTF.8io 4 spaces...
|
18096
|
NULL
|
NULL
|
NULL
|
|
18099
|
NULL
|
0
|
2026-05-11T10:52:55.305918+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778496775305_m1.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
True
|
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
3
70
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,
'policy' => $this->parsePolicy($e),
'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;
}
}
$policy = $this->parsePolicy($e);
if ($policy === 'TEN_SECONDLY_ROLLING') {
return 10;
}
if ($policy === 'SECONDLY') {
return 1;
}
if ($policy === 'DAILY_LIMIT') {
return 600;
}
$this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [
'exception_class' => get_class($e),
]);
return 10;
}
public function parsePolicy(Throwable $e): ?string
{
if (! method_exists($e, 'getResponseBody')) {
return null;
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return null;
}
$policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;
if (is_string($policy)) {
return strtoupper($policy);
}
$message = strtolower((string) ($body['message'] ?? ''));
if ($message === '') {
return null;
}
if (str_contains($message, 'daily')) {
return 'DAILY_LIMIT';
}
if (str_contains($message, 'ten secondly')) {
return 'TEN_SECONDLY_ROLLING';
}
if (str_contains($message, 'secondly')) {
return 'SECONDLY';
}
return null;
}
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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"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":"3","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.016666668,"height":0.02111111},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"70","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.020833334,"height":0.02111111},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.016666668,"height":0.02111111},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.015277778,"height":0.025555555},"on_screen":false,"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.0,"top":0.0,"width":0.014583333,"height":0.025555555},"on_screen":false,"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 'policy' => $this->parsePolicy($e),\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 $policy = $this->parsePolicy($e);\n if ($policy === 'TEN_SECONDLY_ROLLING') {\n return 10;\n }\n if ($policy === 'SECONDLY') {\n return 1;\n }\n if ($policy === 'DAILY_LIMIT') {\n return 600;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [\n 'exception_class' => get_class($e),\n ]);\n\n return 10;\n }\n\n public function parsePolicy(Throwable $e): ?string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return null;\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 null;\n }\n\n $policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;\n if (is_string($policy)) {\n return strtoupper($policy);\n }\n\n $message = strtolower((string) ($body['message'] ?? ''));\n if ($message === '') {\n return null;\n }\n\n if (str_contains($message, 'daily')) {\n return 'DAILY_LIMIT';\n }\n if (str_contains($message, 'ten secondly')) {\n return 'TEN_SECONDLY_ROLLING';\n }\n if (str_contains($message, 'secondly')) {\n return 'SECONDLY';\n }\n\n return null;\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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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 'policy' => $this->parsePolicy($e),\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 $policy = $this->parsePolicy($e);\n if ($policy === 'TEN_SECONDLY_ROLLING') {\n return 10;\n }\n if ($policy === 'SECONDLY') {\n return 1;\n }\n if ($policy === 'DAILY_LIMIT') {\n return 600;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [\n 'exception_class' => get_class($e),\n ]);\n\n return 10;\n }\n\n public function parsePolicy(Throwable $e): ?string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return null;\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 null;\n }\n\n $policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;\n if (is_string($policy)) {\n return strtoupper($policy);\n }\n\n $message = strtolower((string) ($body['message'] ?? ''));\n if ($message === '') {\n return null;\n }\n\n if (str_contains($message, 'daily')) {\n return 'DAILY_LIMIT';\n }\n if (str_contains($message, 'ten secondly')) {\n return 'TEN_SECONDLY_ROLLING';\n }\n if (str_contains($message, 'secondly')) {\n return 'SECONDLY';\n }\n\n return null;\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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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":"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":"19","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-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","depth":4,"on_screen":true,"value":"[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","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}]...
|
1919495047353116799
|
6666989725011544164
|
idle
|
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
3
70
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,
'policy' => $this->parsePolicy($e),
'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;
}
}
$policy = $this->parsePolicy($e);
if ($policy === 'TEN_SECONDLY_ROLLING') {
return 10;
}
if ($policy === 'SECONDLY') {
return 1;
}
if ($policy === 'DAILY_LIMIT') {
return 600;
}
$this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [
'exception_class' => get_class($e),
]);
return 10;
}
public function parsePolicy(Throwable $e): ?string
{
if (! method_exists($e, 'getResponseBody')) {
return null;
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return null;
}
$policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;
if (is_string($policy)) {
return strtoupper($policy);
}
$message = strtolower((string) ($body['message'] ?? ''));
if ($message === '') {
return null;
}
if (str_contains($message, 'daily')) {
return 'DAILY_LIMIT';
}
if (str_contains($message, 'ten secondly')) {
return 'TEN_SECONDLY_ROLLING';
}
if (str_contains($message, 'secondly')) {
return 'SECONDLY';
}
return null;
}
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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18100
|
787
|
0
|
2026-05-11T10:53:22.537425+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778496802537_m2.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
True
|
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
3
70
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,
'policy' => $this->parsePolicy($e),
'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;
}
}
$policy = $this->parsePolicy($e);
if ($policy === 'TEN_SECONDLY_ROLLING') {
return 10;
}
if ($policy === 'SECONDLY') {
return 1;
}
if ($policy === 'DAILY_LIMIT') {
return 600;
}
$this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [
'exception_class' => get_class($e),
]);
return 10;
}
public function parsePolicy(Throwable $e): ?string
{
if (! method_exists($e, 'getResponseBody')) {
return null;
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return null;
}
$policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;
if (is_string($policy)) {
return strtoupper($policy);
}
$message = strtolower((string) ($body['message'] ?? ''));
if ($message === '') {
return null;
}
if (str_contains($message, 'daily')) {
return 'DAILY_LIMIT';
}
if (str_contains($message, 'ten secondly')) {
return 'TEN_SECONDLY_ROLLING';
}
if (str_contains($message, 'secondly')) {
return 'SECONDLY';
}
return null;
}
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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"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":"3","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.007978723,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"70","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.009973404,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.007978723,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.00731383,"height":0.0},"on_screen":false,"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.27027926,"top":1.0,"width":0.006981383,"height":0.0},"on_screen":false,"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 'policy' => $this->parsePolicy($e),\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 $policy = $this->parsePolicy($e);\n if ($policy === 'TEN_SECONDLY_ROLLING') {\n return 10;\n }\n if ($policy === 'SECONDLY') {\n return 1;\n }\n if ($policy === 'DAILY_LIMIT') {\n return 600;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [\n 'exception_class' => get_class($e),\n ]);\n\n return 10;\n }\n\n public function parsePolicy(Throwable $e): ?string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return null;\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 null;\n }\n\n $policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;\n if (is_string($policy)) {\n return strtoupper($policy);\n }\n\n $message = strtolower((string) ($body['message'] ?? ''));\n if ($message === '') {\n return null;\n }\n\n if (str_contains($message, 'daily')) {\n return 'DAILY_LIMIT';\n }\n if (str_contains($message, 'ten secondly')) {\n return 'TEN_SECONDLY_ROLLING';\n }\n if (str_contains($message, 'secondly')) {\n return 'SECONDLY';\n }\n\n return null;\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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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 'policy' => $this->parsePolicy($e),\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 $policy = $this->parsePolicy($e);\n if ($policy === 'TEN_SECONDLY_ROLLING') {\n return 10;\n }\n if ($policy === 'SECONDLY') {\n return 1;\n }\n if ($policy === 'DAILY_LIMIT') {\n return 600;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [\n 'exception_class' => get_class($e),\n ]);\n\n return 10;\n }\n\n public function parsePolicy(Throwable $e): ?string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return null;\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 null;\n }\n\n $policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;\n if (is_string($policy)) {\n return strtoupper($policy);\n }\n\n $message = strtolower((string) ($body['message'] ?? ''));\n if ($message === '') {\n return null;\n }\n\n if (str_contains($message, 'daily')) {\n return 'DAILY_LIMIT';\n }\n if (str_contains($message, 'ten secondly')) {\n return 'TEN_SECONDLY_ROLLING';\n }\n if (str_contains($message, 'secondly')) {\n return 'SECONDLY';\n }\n\n return null;\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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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":"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":"19","depth":4,"bounds":{"left":0.7124335,"top":0.10055866,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.7237367,"top":0.09896249,"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.73105055,"top":0.09896249,"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-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","depth":4,"bounds":{"left":0.47672874,"top":0.09736632,"width":0.52327126,"height":0.8818835},"on_screen":true,"lines":[{"char_start":207,"char_count":30,"bounds":{"left":0.47672874,"top":0.0,"width":0.07513298,"height":0.014365523}},{"char_start":237,"char_count":36,"bounds":{"left":0.47672874,"top":0.0,"width":0.09075798,"height":0.014365523}},{"char_start":273,"char_count":32,"bounds":{"left":0.47672874,"top":0.0,"width":0.080119684,"height":0.014365523}},{"char_start":305,"char_count":79,"bounds":{"left":0.47672874,"top":0.0,"width":0.20212767,"height":0.014365523}},{"char_start":384,"char_count":18,"bounds":{"left":0.47672874,"top":0.0,"width":0.043882977,"height":0.014365523}},{"char_start":402,"char_count":21,"bounds":{"left":0.47672874,"top":0.0,"width":0.051861703,"height":0.014365523}},{"char_start":423,"char_count":48,"bounds":{"left":0.47672874,"top":0.008778931,"width":0.12167553,"height":0.014365523}},{"char_start":471,"char_count":72,"bounds":{"left":0.47672874,"top":0.026336791,"width":0.18384309,"height":0.014365523}},{"char_start":543,"char_count":40,"bounds":{"left":0.47672874,"top":0.043894652,"width":0.10106383,"height":0.014365523}},{"char_start":583,"char_count":41,"bounds":{"left":0.47672874,"top":0.061452515,"width":0.10372341,"height":0.014365523}},{"char_start":624,"char_count":72,"bounds":{"left":0.47672874,"top":0.079010375,"width":0.18384309,"height":0.014365523}},{"char_start":696,"char_count":219,"bounds":{"left":0.47672874,"top":0.096568234,"width":0.52327126,"height":0.014365523}},{"char_start":915,"char_count":83,"bounds":{"left":0.47672874,"top":0.11412609,"width":0.21243352,"height":0.014365523}},{"char_start":998,"char_count":20,"bounds":{"left":0.47672874,"top":0.13168396,"width":0.04920213,"height":0.014365523}},{"char_start":1018,"char_count":17,"bounds":{"left":0.47672874,"top":0.14924182,"width":0.041223403,"height":0.014365523}},{"char_start":1035,"char_count":203,"bounds":{"left":0.47672874,"top":0.16679968,"width":0.52327126,"height":0.014365523}},{"char_start":1238,"char_count":22,"bounds":{"left":0.47672874,"top":0.18435754,"width":0.05418883,"height":0.014365523}},{"char_start":1260,"char_count":23,"bounds":{"left":0.47672874,"top":0.2019154,"width":0.056848403,"height":0.014365523}},{"char_start":1283,"char_count":10,"bounds":{"left":0.47672874,"top":0.21947326,"width":0.023271276,"height":0.014365523}},{"char_start":1293,"char_count":27,"bounds":{"left":0.47672874,"top":0.23703113,"width":0.06715426,"height":0.014365523}},{"char_start":1320,"char_count":26,"bounds":{"left":0.47672874,"top":0.254589,"width":0.06482713,"height":0.014365523}},{"char_start":1346,"char_count":23,"bounds":{"left":0.47672874,"top":0.27214685,"width":0.056848403,"height":0.014365523}},{"char_start":1369,"char_count":28,"bounds":{"left":0.47672874,"top":0.2897047,"width":0.06981383,"height":0.014365523}},{"char_start":1397,"char_count":57,"bounds":{"left":0.47672874,"top":0.30726257,"width":0.14494681,"height":0.014365523}}],"value":"[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","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},{"role":"AXButton","text":"New File or Directory…","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":"AXButton","text":"Expand Selected","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":"AXButton","text":"Collapse All","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":"AXButton","text":"Options","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":"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}]...
|
1919495047353116799
|
6666989725011544164
|
idle
|
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
3
70
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,
'policy' => $this->parsePolicy($e),
'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;
}
}
$policy = $this->parsePolicy($e);
if ($policy === 'TEN_SECONDLY_ROLLING') {
return 10;
}
if ($policy === 'SECONDLY') {
return 1;
}
if ($policy === 'DAILY_LIMIT') {
return 600;
}
$this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [
'exception_class' => get_class($e),
]);
return 10;
}
public function parsePolicy(Throwable $e): ?string
{
if (! method_exists($e, 'getResponseBody')) {
return null;
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return null;
}
$policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;
if (is_string($policy)) {
return strtoupper($policy);
}
$message = strtolower((string) ($body['message'] ?? ''));
if ($message === '') {
return null;
}
if (str_contains($message, 'daily')) {
return 'DAILY_LIMIT';
}
if (str_contains($message, 'ten secondly')) {
return 'TEN_SECONDLY_ROLLING';
}
if (str_contains($message, 'secondly')) {
return 'SECONDLY';
}
return null;
}
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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18101
|
786
|
0
|
2026-05-11T10:53:25.688381+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778496805688_m1.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
True
|
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
3
70
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,
'policy' => $this->parsePolicy($e),
'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;
}
}
$policy = $this->parsePolicy($e);
if ($policy === 'TEN_SECONDLY_ROLLING') {
return 10;
}
if ($policy === 'SECONDLY') {
return 1;
}
if ($policy === 'DAILY_LIMIT') {
return 600;
}
$this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [
'exception_class' => get_class($e),
]);
return 10;
}
public function parsePolicy(Throwable $e): ?string
{
if (! method_exists($e, 'getResponseBody')) {
return null;
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return null;
}
$policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;
if (is_string($policy)) {
return strtoupper($policy);
}
$message = strtolower((string) ($body['message'] ?? ''));
if ($message === '') {
return null;
}
if (str_contains($message, 'daily')) {
return 'DAILY_LIMIT';
}
if (str_contains($message, 'ten secondly')) {
return 'TEN_SECONDLY_ROLLING';
}
if (str_contains($message, 'secondly')) {
return 'SECONDLY';
}
return null;
}
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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"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":"3","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.016666668,"height":0.02111111},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"70","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.020833334,"height":0.02111111},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.016666668,"height":0.02111111},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.015277778,"height":0.025555555},"on_screen":false,"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.0,"top":0.0,"width":0.014583333,"height":0.025555555},"on_screen":false,"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 'policy' => $this->parsePolicy($e),\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 $policy = $this->parsePolicy($e);\n if ($policy === 'TEN_SECONDLY_ROLLING') {\n return 10;\n }\n if ($policy === 'SECONDLY') {\n return 1;\n }\n if ($policy === 'DAILY_LIMIT') {\n return 600;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [\n 'exception_class' => get_class($e),\n ]);\n\n return 10;\n }\n\n public function parsePolicy(Throwable $e): ?string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return null;\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 null;\n }\n\n $policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;\n if (is_string($policy)) {\n return strtoupper($policy);\n }\n\n $message = strtolower((string) ($body['message'] ?? ''));\n if ($message === '') {\n return null;\n }\n\n if (str_contains($message, 'daily')) {\n return 'DAILY_LIMIT';\n }\n if (str_contains($message, 'ten secondly')) {\n return 'TEN_SECONDLY_ROLLING';\n }\n if (str_contains($message, 'secondly')) {\n return 'SECONDLY';\n }\n\n return null;\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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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 'policy' => $this->parsePolicy($e),\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 $policy = $this->parsePolicy($e);\n if ($policy === 'TEN_SECONDLY_ROLLING') {\n return 10;\n }\n if ($policy === 'SECONDLY') {\n return 1;\n }\n if ($policy === 'DAILY_LIMIT') {\n return 600;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [\n 'exception_class' => get_class($e),\n ]);\n\n return 10;\n }\n\n public function parsePolicy(Throwable $e): ?string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return null;\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 null;\n }\n\n $policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;\n if (is_string($policy)) {\n return strtoupper($policy);\n }\n\n $message = strtolower((string) ($body['message'] ?? ''));\n if ($message === '') {\n return null;\n }\n\n if (str_contains($message, 'daily')) {\n return 'DAILY_LIMIT';\n }\n if (str_contains($message, 'ten secondly')) {\n return 'TEN_SECONDLY_ROLLING';\n }\n if (str_contains($message, 'secondly')) {\n return 'SECONDLY';\n }\n\n return null;\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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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":"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":"19","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-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","depth":4,"on_screen":true,"value":"[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","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}]...
|
1919495047353116799
|
6666989725011544164
|
idle
|
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
3
70
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,
'policy' => $this->parsePolicy($e),
'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;
}
}
$policy = $this->parsePolicy($e);
if ($policy === 'TEN_SECONDLY_ROLLING') {
return 10;
}
if ($policy === 'SECONDLY') {
return 1;
}
if ($policy === 'DAILY_LIMIT') {
return 600;
}
$this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [
'exception_class' => get_class($e),
]);
return 10;
}
public function parsePolicy(Throwable $e): ?string
{
if (! method_exists($e, 'getResponseBody')) {
return null;
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return null;
}
$policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;
if (is_string($policy)) {
return strtoupper($policy);
}
$message = strtolower((string) ($body['message'] ?? ''));
if ($message === '') {
return null;
}
if (str_contains($message, 'daily')) {
return 'DAILY_LIMIT';
}
if (str_contains($message, 'ten secondly')) {
return 'TEN_SECONDLY_ROLLING';
}
if (str_contains($message, 'secondly')) {
return 'SECONDLY';
}
return null;
}
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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
18099
|
NULL
|
NULL
|
NULL
|
|
18137
|
NULL
|
0
|
2026-05-11T10:57:49.450808+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497069450_m2.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
True
|
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
3
70
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,
'policy' => $this->parsePolicy($e),
'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;
}
}
$policy = $this->parsePolicy($e);
if ($policy === 'TEN_SECONDLY_ROLLING') {
return 10;
}
if ($policy === 'SECONDLY') {
return 1;
}
if ($policy === 'DAILY_LIMIT') {
return 600;
}
$this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [
'exception_class' => get_class($e),
]);
return 10;
}
public function parsePolicy(Throwable $e): ?string
{
if (! method_exists($e, 'getResponseBody')) {
return null;
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return null;
}
$policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;
if (is_string($policy)) {
return strtoupper($policy);
}
$message = strtolower((string) ($body['message'] ?? ''));
if ($message === '') {
return null;
}
if (str_contains($message, 'daily')) {
return 'DAILY_LIMIT';
}
if (str_contains($message, 'ten secondly')) {
return 'TEN_SECONDLY_ROLLING';
}
if (str_contains($message, 'secondly')) {
return 'SECONDLY';
}
return null;
}
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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:...
|
[{"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":"3","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.007978723,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"70","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.009973404,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.007978723,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.00731383,"height":0.0},"on_screen":false,"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.27027926,"top":1.0,"width":0.006981383,"height":0.0},"on_screen":false,"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 'policy' => $this->parsePolicy($e),\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 $policy = $this->parsePolicy($e);\n if ($policy === 'TEN_SECONDLY_ROLLING') {\n return 10;\n }\n if ($policy === 'SECONDLY') {\n return 1;\n }\n if ($policy === 'DAILY_LIMIT') {\n return 600;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [\n 'exception_class' => get_class($e),\n ]);\n\n return 10;\n }\n\n public function parsePolicy(Throwable $e): ?string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return null;\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 null;\n }\n\n $policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;\n if (is_string($policy)) {\n return strtoupper($policy);\n }\n\n $message = strtolower((string) ($body['message'] ?? ''));\n if ($message === '') {\n return null;\n }\n\n if (str_contains($message, 'daily')) {\n return 'DAILY_LIMIT';\n }\n if (str_contains($message, 'ten secondly')) {\n return 'TEN_SECONDLY_ROLLING';\n }\n if (str_contains($message, 'secondly')) {\n return 'SECONDLY';\n }\n\n return null;\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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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 'policy' => $this->parsePolicy($e),\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 $policy = $this->parsePolicy($e);\n if ($policy === 'TEN_SECONDLY_ROLLING') {\n return 10;\n }\n if ($policy === 'SECONDLY') {\n return 1;\n }\n if ($policy === 'DAILY_LIMIT') {\n return 600;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [\n 'exception_class' => get_class($e),\n ]);\n\n return 10;\n }\n\n public function parsePolicy(Throwable $e): ?string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return null;\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 null;\n }\n\n $policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;\n if (is_string($policy)) {\n return strtoupper($policy);\n }\n\n $message = strtolower((string) ($body['message'] ?? ''));\n if ($message === '') {\n return null;\n }\n\n if (str_contains($message, 'daily')) {\n return 'DAILY_LIMIT';\n }\n if (str_contains($message, 'ten secondly')) {\n return 'TEN_SECONDLY_ROLLING';\n }\n if (str_contains($message, 'secondly')) {\n return 'SECONDLY';\n }\n\n return null;\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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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":"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}]...
|
-1586378868807448352
|
5225837844252985444
|
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
3
70
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,
'policy' => $this->parsePolicy($e),
'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;
}
}
$policy = $this->parsePolicy($e);
if ($policy === 'TEN_SECONDLY_ROLLING') {
return 10;
}
if ($policy === 'SECONDLY') {
return 1;
}
if ($policy === 'DAILY_LIMIT') {
return 600;
}
$this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [
'exception_class' => get_class($e),
]);
return 10;
}
public function parsePolicy(Throwable $e): ?string
{
if (! method_exists($e, 'getResponseBody')) {
return null;
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return null;
}
$policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;
if (is_string($policy)) {
return strtoupper($policy);
}
$message = strtolower((string) ($body['message'] ?? ''));
if ($message === '') {
return null;
}
if (str_contains($message, 'daily')) {
return 'DAILY_LIMIT';
}
if (str_contains($message, 'ten secondly')) {
return 'TEN_SECONDLY_ROLLING';
}
if (str_contains($message, 'secondly')) {
return 'SECONDLY';
}
return null;
}
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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18138
|
NULL
|
0
|
2026-05-11T10:58:04.009752+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497084009_m1.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
True
|
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
3
70
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,
'policy' => $this->parsePolicy($e),
'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;
}
}
$policy = $this->parsePolicy($e);
if ($policy === 'TEN_SECONDLY_ROLLING') {
return 10;
}
if ($policy === 'SECONDLY') {
return 1;
}
if ($policy === 'DAILY_LIMIT') {
return 600;
}
$this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [
'exception_class' => get_class($e),
]);
return 10;
}
public function parsePolicy(Throwable $e): ?string
{
if (! method_exists($e, 'getResponseBody')) {
return null;
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return null;
}
$policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;
if (is_string($policy)) {
return strtoupper($policy);
}
$message = strtolower((string) ($body['message'] ?? ''));
if ($message === '') {
return null;
}
if (str_contains($message, 'daily')) {
return 'DAILY_LIMIT';
}
if (str_contains($message, 'ten secondly')) {
return 'TEN_SECONDLY_ROLLING';
}
if (str_contains($message, 'secondly')) {
return 'SECONDLY';
}
return null;
}
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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification...
|
[{"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":"3","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.016666668,"height":0.02111111},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"70","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.020833334,"height":0.02111111},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.016666668,"height":0.02111111},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.015277778,"height":0.025555555},"on_screen":false,"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.0,"top":0.0,"width":0.014583333,"height":0.025555555},"on_screen":false,"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 'policy' => $this->parsePolicy($e),\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 $policy = $this->parsePolicy($e);\n if ($policy === 'TEN_SECONDLY_ROLLING') {\n return 10;\n }\n if ($policy === 'SECONDLY') {\n return 1;\n }\n if ($policy === 'DAILY_LIMIT') {\n return 600;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [\n 'exception_class' => get_class($e),\n ]);\n\n return 10;\n }\n\n public function parsePolicy(Throwable $e): ?string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return null;\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 null;\n }\n\n $policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;\n if (is_string($policy)) {\n return strtoupper($policy);\n }\n\n $message = strtolower((string) ($body['message'] ?? ''));\n if ($message === '') {\n return null;\n }\n\n if (str_contains($message, 'daily')) {\n return 'DAILY_LIMIT';\n }\n if (str_contains($message, 'ten secondly')) {\n return 'TEN_SECONDLY_ROLLING';\n }\n if (str_contains($message, 'secondly')) {\n return 'SECONDLY';\n }\n\n return null;\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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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 'policy' => $this->parsePolicy($e),\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 $policy = $this->parsePolicy($e);\n if ($policy === 'TEN_SECONDLY_ROLLING') {\n return 10;\n }\n if ($policy === 'SECONDLY') {\n return 1;\n }\n if ($policy === 'DAILY_LIMIT') {\n return 600;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [\n 'exception_class' => get_class($e),\n ]);\n\n return 10;\n }\n\n public function parsePolicy(Throwable $e): ?string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return null;\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 null;\n }\n\n $policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;\n if (is_string($policy)) {\n return strtoupper($policy);\n }\n\n $message = strtolower((string) ($body['message'] ?? ''));\n if ($message === '') {\n return null;\n }\n\n if (str_contains($message, 'daily')) {\n return 'DAILY_LIMIT';\n }\n if (str_contains($message, 'ten secondly')) {\n return 'TEN_SECONDLY_ROLLING';\n }\n if (str_contains($message, 'secondly')) {\n return 'SECONDLY';\n }\n\n return null;\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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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":"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}]...
|
-882182407154471961
|
5225837844252985444
|
idle
|
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
3
70
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,
'policy' => $this->parsePolicy($e),
'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;
}
}
$policy = $this->parsePolicy($e);
if ($policy === 'TEN_SECONDLY_ROLLING') {
return 10;
}
if ($policy === 'SECONDLY') {
return 1;
}
if ($policy === 'DAILY_LIMIT') {
return 600;
}
$this->log->warning('[Hubspot] No retry-after header or policy name found, using default', [
'exception_class' => get_class($e),
]);
return 10;
}
public function parsePolicy(Throwable $e): ?string
{
if (! method_exists($e, 'getResponseBody')) {
return null;
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return null;
}
$policy = $body['policyName'] ?? $body['policy'] ?? $body['context']['policyName'] ?? null;
if (is_string($policy)) {
return strtoupper($policy);
}
$message = strtolower((string) ($body['message'] ?? ''));
if ($message === '') {
return null;
}
if (str_contains($message, 'daily')) {
return 'DAILY_LIMIT';
}
if (str_contains($message, 'ten secondly')) {
return 'TEN_SECONDLY_ROLLING';
}
if (str_contains($message, 'secondly')) {
return 'SECONDLY';
}
return null;
}
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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification...
|
18135
|
NULL
|
NULL
|
NULL
|
|
18139
|
789
|
0
|
2026-05-11T10:58:20.022306+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497100022_m2.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormINavicarecodeFV faVsco.js°9 JY-20725-handl PhostormINavicarecodeFV faVsco.js°9 JY-20725-handle-HS-search-rate-IiyProletey© BatchSyncCollectolhuospot/service.onpT SyncCrmEntitiesTrait.phpc) CachedCrmServiceDecorator.onge balchsynckealsseo closeaDealstagessDealrielasservice.gRateLimitexcepc)Decorateacuivilv.or© FieldDefinitions.phrC)CrmObiectsResolver.pho() ProviderRateLimiter.phpC) PaqinationContia.phpC) FieldT vpeconverteclass Cuient extends Baseclient imolements Hubspotcuientinterfacee Hubspotclientinterc) Hubspot lokenmanC) PavloadBuilder.phpC) RemotecrmobiectrP ResponseNormalizec) Service.onrC)SvncFieldAction.onC) SvncRelatedActivitC) WebhookSvncBatclv MintearationAorM AcceccorsConfigD DTO• M SiltersD Jobs• M ProcnectSearchStr.W service lraits© DataClient.php© DecorateActivity.ph(e) LocalSearch.onp• LocalSearchInterfac 10€© RemoteSearch.phpc) Service.phpv W Listeners© ConvertLeadActivitc) PurceLookuocache> M Metadata> Miarationa Pioedrivev Salesforce• D Fields> OpportunityMatche 117MOnnortunitvSvneStlM ProsneetSearchStr.• M ServiceTraitcC) Client nhr121© DecorateActivity.pr. Delete@biectsTrait© FieldDefinitions.php© PayloadBuilder.php© Profile.php© QueryBuilder.phpprivate function executeRequest(callable Sapicalb)try{return saoncallo} catch (Throwable $e) {if (Sthis->isHubspotRateLimit($e)) ≤SretrvAfter = Sthis->oarseRetrvAfter(Se):Redis::setex(ScacheKey, SretryAfter, (string) $retryAfter);Sthis->log->warning('[Hubspot] Received 429 from API', [Iteam id!=> $this->config->team_idIconfia idi=> $this->config->getIdOTeury-atler or srecryarlel= Sthis->parsePolicvSe).=> Sthis->parseMessage(Se).= Se-›qethessaqeoiThrow new ratelimitexceotion'ruosoot returned 429', Sretrvarter. Se:throw se:nrivate function detRatelimitlachekevo: strinareturn sprintf('hubspot:ratelimit:portal:%d', $this->config->getIdO):public function isHubspotRateLimit(Throwable $e): boolif (Se instanceof BadRequest1l So inctanconf NealAnifycontion11 $e instanceof ContactApiException11 $e instanceof CompanyApiException11 $e instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) Se->qetCode0 === 429:f 1of 12 edits 1Accept File &~ X Reject File 4% €return talse:4 HS_local (iminny@localhost]# console [PKoD)A console (EU]A console [STAGING][2026-05-07 14:21:15] local.INF0: [Hubspot] DEBUG Getting headers {"Vace".L"Inu,or May 2020 14.21.15 bMlJv.19CascadeHubspot Rate LimitThought for 5s ›Read Client.php #L86-200C Client.phphel• supoont Dally • In 1h 2m100% Lz• Mon 11 May 13:58:19HandleHubspotRateLimitTest v+0 ..lets simplify it, just call it parseMessage and skip policy al togetherJ 1118 tokensAccept Reject"Strict-Transport-Security":"max-aqe=31536000* 1ncLudesubDomains: preload")."server-timing": ["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3)","x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],"Set-Cookie":["__cf_bm=StUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTg07-May-26 14:51:15 GMT; domain=.hubapi.com; Http0nly; Secure; SameSite=None"],\"url\":"https:|\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEg2\"group\":\"cf-nel\",\"max_age\":604800}"],"NEL".L"1"max age":604800}"]"Server": ["cloudflare"]}} {"correlation 10":"95256555-ec98-4541-b9za-adta/sboveab","trace_1d":"C/ab8565-905t-4604-9405-0e5b551e5545'}T1!1aon/Services/Crm/Hubsoot/m Client.ohv 2Ask anvthina (84L)" CodeClaude Onus 1.7 Medium•Reiect alllWN Windsurf Toams 100-1UTF.8.Miow ottAccent allio 4 spaces...
|
NULL
|
-3063102639947282785
|
NULL
|
idle
|
ocr
|
NULL
|
PhostormINavicarecodeFV faVsco.js°9 JY-20725-handl PhostormINavicarecodeFV faVsco.js°9 JY-20725-handle-HS-search-rate-IiyProletey© BatchSyncCollectolhuospot/service.onpT SyncCrmEntitiesTrait.phpc) CachedCrmServiceDecorator.onge balchsynckealsseo closeaDealstagessDealrielasservice.gRateLimitexcepc)Decorateacuivilv.or© FieldDefinitions.phrC)CrmObiectsResolver.pho() ProviderRateLimiter.phpC) PaqinationContia.phpC) FieldT vpeconverteclass Cuient extends Baseclient imolements Hubspotcuientinterfacee Hubspotclientinterc) Hubspot lokenmanC) PavloadBuilder.phpC) RemotecrmobiectrP ResponseNormalizec) Service.onrC)SvncFieldAction.onC) SvncRelatedActivitC) WebhookSvncBatclv MintearationAorM AcceccorsConfigD DTO• M SiltersD Jobs• M ProcnectSearchStr.W service lraits© DataClient.php© DecorateActivity.ph(e) LocalSearch.onp• LocalSearchInterfac 10€© RemoteSearch.phpc) Service.phpv W Listeners© ConvertLeadActivitc) PurceLookuocache> M Metadata> Miarationa Pioedrivev Salesforce• D Fields> OpportunityMatche 117MOnnortunitvSvneStlM ProsneetSearchStr.• M ServiceTraitcC) Client nhr121© DecorateActivity.pr. Delete@biectsTrait© FieldDefinitions.php© PayloadBuilder.php© Profile.php© QueryBuilder.phpprivate function executeRequest(callable Sapicalb)try{return saoncallo} catch (Throwable $e) {if (Sthis->isHubspotRateLimit($e)) ≤SretrvAfter = Sthis->oarseRetrvAfter(Se):Redis::setex(ScacheKey, SretryAfter, (string) $retryAfter);Sthis->log->warning('[Hubspot] Received 429 from API', [Iteam id!=> $this->config->team_idIconfia idi=> $this->config->getIdOTeury-atler or srecryarlel= Sthis->parsePolicvSe).=> Sthis->parseMessage(Se).= Se-›qethessaqeoiThrow new ratelimitexceotion'ruosoot returned 429', Sretrvarter. Se:throw se:nrivate function detRatelimitlachekevo: strinareturn sprintf('hubspot:ratelimit:portal:%d', $this->config->getIdO):public function isHubspotRateLimit(Throwable $e): boolif (Se instanceof BadRequest1l So inctanconf NealAnifycontion11 $e instanceof ContactApiException11 $e instanceof CompanyApiException11 $e instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) Se->qetCode0 === 429:f 1of 12 edits 1Accept File &~ X Reject File 4% €return talse:4 HS_local (iminny@localhost]# console [PKoD)A console (EU]A console [STAGING][2026-05-07 14:21:15] local.INF0: [Hubspot] DEBUG Getting headers {"Vace".L"Inu,or May 2020 14.21.15 bMlJv.19CascadeHubspot Rate LimitThought for 5s ›Read Client.php #L86-200C Client.phphel• supoont Dally • In 1h 2m100% Lz• Mon 11 May 13:58:19HandleHubspotRateLimitTest v+0 ..lets simplify it, just call it parseMessage and skip policy al togetherJ 1118 tokensAccept Reject"Strict-Transport-Security":"max-aqe=31536000* 1ncLudesubDomains: preload")."server-timing": ["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3)","x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],"Set-Cookie":["__cf_bm=StUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTg07-May-26 14:51:15 GMT; domain=.hubapi.com; Http0nly; Secure; SameSite=None"],\"url\":"https:|\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEg2\"group\":\"cf-nel\",\"max_age\":604800}"],"NEL".L"1"max age":604800}"]"Server": ["cloudflare"]}} {"correlation 10":"95256555-ec98-4541-b9za-adta/sboveab","trace_1d":"C/ab8565-905t-4604-9405-0e5b551e5545'}T1!1aon/Services/Crm/Hubsoot/m Client.ohv 2Ask anvthina (84L)" CodeClaude Onus 1.7 Medium•Reiect alllWN Windsurf Toams 100-1UTF.8.Miow ottAccent allio 4 spaces...
|
18137
|
NULL
|
NULL
|
NULL
|
|
18140
|
788
|
0
|
2026-05-11T10:58:34.440602+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497114440_m1.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
True
|
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
3
70
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,
'message' => $this->parseMessage($e),
'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($this->parseMessage($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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"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":"3","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.016666668,"height":0.02111111},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"70","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.020833334,"height":0.02111111},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.016666668,"height":0.02111111},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.015277778,"height":0.025555555},"on_screen":false,"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.0,"top":0.0,"width":0.014583333,"height":0.025555555},"on_screen":false,"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 'message' => $this->parseMessage($e),\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($this->parseMessage($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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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 'message' => $this->parseMessage($e),\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($this->parseMessage($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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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":"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":"19","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-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","depth":4,"on_screen":true,"value":"[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","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}]...
|
-3565486188857559927
|
6378616412683765860
|
idle
|
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
3
70
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,
'message' => $this->parseMessage($e),
'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($this->parseMessage($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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18186
|
NULL
|
0
|
2026-05-11T11:03:02.631548+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497382631_m1.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
True
|
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,
'message' => $this->parseMessage($e),
'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($this->parseMessage($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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"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 'message' => $this->parseMessage($e),\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($this->parseMessage($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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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 'message' => $this->parseMessage($e),\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($this->parseMessage($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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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":"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":"19","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-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","depth":4,"on_screen":true,"value":"[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","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}]...
|
5549352204577814028
|
6378757150172121188
|
idle
|
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,
'message' => $this->parseMessage($e),
'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($this->parseMessage($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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18187
|
NULL
|
0
|
2026-05-11T11:03:04.180492+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497384180_m2.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
True
|
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,
'message' => $this->parseMessage($e),
'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($this->parseMessage($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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"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.41156915,"top":0.19952115,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"67","depth":4,"bounds":{"left":0.42154256,"top":0.19952115,"width":0.009973404,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"bounds":{"left":0.43351063,"top":0.19952115,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.4431516,"top":0.19792499,"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.4504654,"top":0.19792499,"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 'message' => $this->parseMessage($e),\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($this->parseMessage($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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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 'message' => $this->parseMessage($e),\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($this->parseMessage($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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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":"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":"19","depth":4,"bounds":{"left":0.7124335,"top":0.10055866,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.7237367,"top":0.09896249,"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.73105055,"top":0.09896249,"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-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","depth":4,"bounds":{"left":0.47672874,"top":0.09736632,"width":0.52327126,"height":0.8818835},"on_screen":true,"lines":[{"char_start":207,"char_count":30,"bounds":{"left":0.47672874,"top":0.0,"width":0.07513298,"height":0.014365523}},{"char_start":237,"char_count":36,"bounds":{"left":0.47672874,"top":0.0,"width":0.09075798,"height":0.014365523}},{"char_start":273,"char_count":32,"bounds":{"left":0.47672874,"top":0.0,"width":0.080119684,"height":0.014365523}},{"char_start":305,"char_count":79,"bounds":{"left":0.47672874,"top":0.0,"width":0.20212767,"height":0.014365523}},{"char_start":384,"char_count":18,"bounds":{"left":0.47672874,"top":0.0,"width":0.043882977,"height":0.014365523}},{"char_start":402,"char_count":21,"bounds":{"left":0.47672874,"top":0.0,"width":0.051861703,"height":0.014365523}},{"char_start":423,"char_count":48,"bounds":{"left":0.47672874,"top":0.008778931,"width":0.12167553,"height":0.014365523}},{"char_start":471,"char_count":72,"bounds":{"left":0.47672874,"top":0.026336791,"width":0.18384309,"height":0.014365523}},{"char_start":543,"char_count":40,"bounds":{"left":0.47672874,"top":0.043894652,"width":0.10106383,"height":0.014365523}},{"char_start":583,"char_count":41,"bounds":{"left":0.47672874,"top":0.061452515,"width":0.10372341,"height":0.014365523}},{"char_start":624,"char_count":72,"bounds":{"left":0.47672874,"top":0.079010375,"width":0.18384309,"height":0.014365523}},{"char_start":696,"char_count":219,"bounds":{"left":0.47672874,"top":0.096568234,"width":0.52327126,"height":0.014365523}},{"char_start":915,"char_count":83,"bounds":{"left":0.47672874,"top":0.11412609,"width":0.21243352,"height":0.014365523}},{"char_start":998,"char_count":20,"bounds":{"left":0.47672874,"top":0.13168396,"width":0.04920213,"height":0.014365523}},{"char_start":1018,"char_count":17,"bounds":{"left":0.47672874,"top":0.14924182,"width":0.041223403,"height":0.014365523}},{"char_start":1035,"char_count":203,"bounds":{"left":0.47672874,"top":0.16679968,"width":0.52327126,"height":0.014365523}},{"char_start":1238,"char_count":22,"bounds":{"left":0.47672874,"top":0.18435754,"width":0.05418883,"height":0.014365523}},{"char_start":1260,"char_count":23,"bounds":{"left":0.47672874,"top":0.2019154,"width":0.056848403,"height":0.014365523}},{"char_start":1283,"char_count":10,"bounds":{"left":0.47672874,"top":0.21947326,"width":0.023271276,"height":0.014365523}},{"char_start":1293,"char_count":27,"bounds":{"left":0.47672874,"top":0.23703113,"width":0.06715426,"height":0.014365523}},{"char_start":1320,"char_count":26,"bounds":{"left":0.47672874,"top":0.254589,"width":0.06482713,"height":0.014365523}},{"char_start":1346,"char_count":23,"bounds":{"left":0.47672874,"top":0.27214685,"width":0.056848403,"height":0.014365523}},{"char_start":1369,"char_count":28,"bounds":{"left":0.47672874,"top":0.2897047,"width":0.06981383,"height":0.014365523}},{"char_start":1397,"char_count":57,"bounds":{"left":0.47672874,"top":0.30726257,"width":0.14494681,"height":0.014365523}}],"value":"[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","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},{"role":"AXButton","text":"New File or Directory…","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":"AXButton","text":"Expand Selected","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":"AXButton","text":"Collapse All","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":"AXButton","text":"Options","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":"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}]...
|
5549352204577814028
|
6378757150172121188
|
idle
|
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,
'message' => $this->parseMessage($e),
'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($this->parseMessage($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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18188
|
790
|
0
|
2026-05-11T11:03:33.055619+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497413055_m1.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
True
|
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,
'message' => $this->parseMessage($e),
'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($this->parseMessage($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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"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 'message' => $this->parseMessage($e),\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($this->parseMessage($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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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 'message' => $this->parseMessage($e),\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($this->parseMessage($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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(\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":"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":"19","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-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","depth":4,"on_screen":true,"value":"[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","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}]...
|
5549352204577814028
|
6378757150172121188
|
idle
|
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,
'message' => $this->parseMessage($e),
'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($this->parseMessage($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->executeRequest(fn () => $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$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);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
19
Previous Highlighted Error
Next Highlighted Error
[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {
"headers":{
"Date":["Thu,07 May 2026 14:21:15 GMT"],
"Content-Type":["application/json;charset=utf-8"],
"Transfer-Encoding":["chunked"],
"Connection":["keep-alive"],
"CF-Ray":["9f80deb8db60dc3a-SOF"],
"CF-Cache-Status":["DYNAMIC"],
"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],
"Vary":["origin,
accept-encoding"],
"access-control-allow-credentials":["false"],
"server-timing":["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",
cfr;desc=\"9f80deb8e7c6dc3a-IAD\""],
"x-content-type-options":["nosniff"],
"x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],
"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,
07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None"],
"Report-To":["{
\"endpoints\":[{
\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\"}],
\"group\":\"cf-nel\",
\"max_age\":604800}"],
"NEL":["{
\"success_fraction\":0.01,
\"report_to\":\"cf-nel\",
\"max_age\":604800}"],
"Server":["cloudflare"]}} {
"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab",
"trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
18186
|
NULL
|
NULL
|
NULL
|
|
18189
|
791
|
0
|
2026-05-11T11:03:34.637064+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497414637_m2.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
True
|
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...
|
[{"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}]...
|
5685266402682420683
|
-8926130836387591936
|
idle
|
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
PhostormINavicarecodeFV faVsco.js°9 JY-20725-handle-HS-search-rate-linProiect© BatchSyncCollectol•JiminnyDeougcommane.onge balchsynckealsseo closedDealstagesso RematchActivityonCrmObiectDetach.pngDealrielasservice.gc)Decorateacuivilv.or© FieldDefinitions.phrC) FieldT vpeconvertee Hubspotclientinterc) Hubspotlokenman© PayloadBuilder.phpC) RemotecrmobiectrP ResponseNormalizec) Service.onrC)SvncFieldAction.onC) SvncRelatedActivitC) WebhookSvncBatclv MintearationAorM Acceccors• D ConfigDDTO• M SiltersD Jobs• M ProcnectSearchStr.W sevice lraits© DataClient.php© DecorateActivity.phc Localsearch.oneu Localsearchinteria© RemoteSearch.phpc) Service.phpv W Listeners© ConvertLeadActivitc) PurceLookuocache> M Metadata> MiarationM Pipedrivev Salesforce• D FieldsM OnnortunitvMatcheMOnnortunitvSvneSt,M ProsneetSearchStr.M ServiceTraitcC) Client nhr© DecorateActivity.ph. Delete@biectsTrait© FieldDefinitions.php© PayloadBuilder.php© Profile.php© QueryBuilder.phpTacts nacced. 12 (1 hour adoiRateLimitexcedC) CrmObiectsResolver.pho() ProviderRateLimiter.phpclass Cuient extends BasecLient imolements Hubspotcuientinterfacepublic function getPaginatedDataGenerator(neturnSthis->naginationService->aetPaginatedDataGenenatordSthis$payload,$type,sotrset,a scocal,2. Clac+RocondTdi243244 FExecute a search request against Hubspot ukn obnects with rate Limitinq.247•doaram strina sobzectlupe lne obzect tupe deals''contacts', 'calls')* oparam arrou‹strino. maxed› sooulodd lne search poulond with tzlters. sorts. provertzes. etc* @return array The search response with 'results', 'total', 'paging' keys* othrows RatelimitExcention When rate limit is hit* othrows HubspotExceotion On APi errors253 CTpubuic function searchistring Sobiectivoe. array Soavload): arravSendpoint = self::BASE_URL • "/crm/v3/objects/{SobjectTypes/search";return $this->executeRequest(function ( use (Sendpoint, $payload) {Sresnonse = Sthis->aetInstance@->aetCZient@->request/method)'POST', Sendpoint, ['json' => $payload]):neturn Sresnonse->toArravo264* Othrows DealApiException266* athrows CrmExceptionpublic function getOpportunityById(string ScrmId, array $fields): array//1Sdeal = Sthis-›executeRequest(fn () => Sthis->qetNewInstance()->crm()->deals(->basicApi@->getBvId(Sdeal = Sthis->qetNewInstance@->crm@->deals@->basicApi@->qetBvId(Scrmiidlimolode separator: ".'. Sfields)42 A67 X3AII II IIII | M01111I4 HS_local (jiminny@localhost]# console [PKoD)A console (EU]A console [STAGING][2026-05-07 14:21:15] local.INF0: [Hubspot] DEBUG Getting headers {w19A"Vace".L"Inu,or May 2020 14.21.15 bMlJ"Connection":"keep-alive"]r"CF-Ray":"9t80deb8dbo0dcsa-S0F")r"Strict-Transport-Security":"max-aqe=31536000* 1ncLudesubDomains: preload")."server-timing": ["hcid;desc=|"019e02d0-6fd8-7812-bdba-885b7ccb3ee3)","x-hubspot-correlation-id":["019e02d0-6fd8-7812-bdba-885b7ccb3ee3"],"Set-Cookie":["__cf_bm=S1UrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTg07-May-26 14:51:15 GMT; domain=.hubapi.com; Http0nly; Secure; SameSite=None"],\"url\":"https:|\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEg2\"group\":\"cf-nel\",\"max_age)":604800}"],"NEL".L"1\"success_fraction\":0.01,("max age ":604800}"]"Server": ["cloudflare"]}} {"correlation id":"95236535-ec98-4541-b92a-adfa73b69eab"."trace_1d":"C/Ab8565-905t-4604-9405-0e5b551e5545'5helPreparation tor kell... In o/ m100% Lz• Mon 11 May 14:03:34HandleHubspotRateLimitTest vCascade• HubSpot Rate Limit+0 ..lets simplify it, just call it parseMessage and skip policy al togetherThought for 5s ›Read Client.php #L86-200b Client.php+17 -35Verity nothing broke:Command docker. tailtests/Unit/Services/Crm/Hubspot/ClientTest.php --no-coverage 2>&1 | tail -10attaesmopup92.20contiourat ion:nome1iminnyonounit.xml•[PASSWORD_DOTS]DD..DD..D.D..DDDDD.DDD...D[PASSWORD_DOTS] 65 /80 (1818)Time: 02:14.415. Memorv: 62.00 MBOk but there were iccuec!Ask anvthina (84L)Claude Onus 1.7 MediumWN Windsurf Toams 250-1UTF.8.fo 4 spaces...
|
18187
|
NULL
|
NULL
|
NULL
|
|
18286
|
NULL
|
0
|
2026-05-11T11:08:11.540872+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497691540_m1.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
worker-conferences:worker-conferences_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Syncing opportunity 0
Syncing opportunity 25
Syncing opportunity 50
Syncing opportunity 75
Syncing opportunity 100
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Syncing opportunity 0
Syncing opportunity 25
Syncing opportunity 50
Syncing opportunity 75
Syncing opportunity 100
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Syncing opportunity 0
HubSpot\Client\Crm\Deals\ApiException
[429] Client error: `GET [URL_WITH_CREDENTIALS] php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 10.49ms DONE
cache [PASSWORD_DOTS] 21.31ms DONE
compiled [PASSWORD_DOTS] 3.11ms DONE
events [PASSWORD_DOTS] 5.05ms DONE
routes [PASSWORD_DOTS] 1.83ms DONE
views [PASSWORD_DOTS] 4.91ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
worker:worker_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
artisan-schedule:artisan-schedule_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 37.77ms DONE
cache [PASSWORD_DOTS] 58.83ms DONE
compiled [PASSWORD_DOTS] 9.93ms DONE
events [PASSWORD_DOTS] 12.23ms DONE
routes [PASSWORD_DOTS] 5.02ms DONE
views [PASSWORD_DOTS] 21.46ms DONE
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-download:worker-download_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker:worker_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 6.01ms DONE
cache [PASSWORD_DOTS] 16.11ms DONE
compiled [PASSWORD_DOTS] 2.91ms DONE
events [PASSWORD_DOTS] 2.27ms DONE
routes [PASSWORD_DOTS] 3.11ms DONE
views [PASSWORD_DOTS] 18.41ms DONE
worker-crm-update:worker-crm-update_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
SevenShores\Hubspot\Exceptions\BadRequest
Client error: `POST [URL_WITH_CREDENTIALS] php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 55.84ms DONE
cache [PASSWORD_DOTS] 108.68ms DONE
compiled [PASSWORD_DOTS] 22.07ms DONE
events [PASSWORD_DOTS] 25.86ms DONE
routes [PASSWORD_DOTS] 19.91ms DONE
views [PASSWORD_DOTS] 52.25ms DONE
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
artisan-schedule:artisan-schedule_00: stopped
worker-audio:worker-audio_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
TypeError
Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService::getPaginatedDataGenerator(): Return value must be of type Generator, none returned
at app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:83
79▕
80▕ // Update reference parameters
81▕ $total = $state->total;
82▕ $lastRecordId = $state->lastRecordId;
➜ 83▕ }
84▕
85▕ private function shouldStopPagination(PaginationState $state, int $teamId): bool
86▕ {
87▕ if ($state->hasReachedSafetyLimit()) {
1 app/Services/Crm/Hubspot/Client.php:195
Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService::getPaginatedDataGenerator(Object(Jiminny\Services\Crm\Hubspot\Client), [], "contact")
2 app/Services/Crm/Hubspot/Client.php:176
Jiminny\Services\Crm\Hubspot\Client::getPaginatedDataGenerator([], "contact")
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 14.73ms DONE
cache [PASSWORD_DOTS] 19.13ms DONE
compiled [PASSWORD_DOTS] 4.93ms DONE
events [PASSWORD_DOTS] 3.02ms DONE
routes [PASSWORD_DOTS] 5.55ms DONE
views [PASSWORD_DOTS] 6.02ms DONE
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-conferences:worker-conferences_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Jiminny\Exceptions\RateLimitException
Hubspot returned 429
at app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:206
202▕ 'retry_after' => $retryAfter,
203▕ 'reason' => $e->getMessage(),
204▕ ]);
205▕
➜ 206▕ throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
207▕ } else {
208▕ throw $e;
209▕ }
210▕ }
+14 vendor frames
15 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:166
SevenShores\Hubspot\Http\Client::request("POST", "[URL_WITH_CREDENTIALS] php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 4.47ms DONE
cache [PASSWORD_DOTS] 16.66ms DONE
compiled [PASSWORD_DOTS] 3.26ms DONE
events [PASSWORD_DOTS] 3.99ms DONE
routes [PASSWORD_DOTS] 3.85ms DONE
views [PASSWORD_DOTS] 4.93ms DONE
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 14.42ms DONE
cache [PASSWORD_DOTS] 23.70ms DONE
compiled [PASSWORD_DOTS] 3.46ms DONE
events [PASSWORD_DOTS] 4.30ms DONE
routes [PASSWORD_DOTS] 8.35ms DONE
views [PASSWORD_DOTS] 8.00ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-crm-update:worker-crm-update_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Jiminny\Exceptions\RateLimitException
Hubspot returned 429
at app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:206
202▕ 'retry_after' => $retryAfter,
203▕ 'reason' => $e->getMessage(),
204▕ ]);
205▕
➜ 206▕ throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
207▕ } else {
208▕ throw $e;
209▕ }
210▕ }
+14 vendor frames
15 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:166
SevenShores\Hubspot\Http\Client::request("POST", "[URL_WITH_CREDENTIALS] php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 6.77ms DONE
cache [PASSWORD_DOTS] 25.55ms DONE
compiled [PASSWORD_DOTS] 3.87ms DONE
events [PASSWORD_DOTS] 4.96ms DONE
routes [PASSWORD_DOTS] 2.23ms DONE
views [PASSWORD_DOTS] 7.50ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
worker-conferences:worker-conferences_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
root@docker_lamp_1:/home/jiminny#
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug 007d5da3af66
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch JY-20725-handle-HS-search-rate-limit
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: app/Jobs/Middleware/HandleHubspotRateLimit.php
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/Exceptions/RateLimitException.php
modified: app/Jobs/Activity/Import/MatchCrmData.php
modified: app/Jobs/Crm/MatchActivityCrmData.php
modified: app/Services/Crm/Hubspot/Client.php
modified: app/Services/Crm/Hubspot/HubspotClientInterface.php
modified: app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
modified: app/Services/Crm/Hubspot/Pagination/PaginationState.php
modified: app/Services/Crm/Hubspot/Service.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.local.bak
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Policies/CanAccessAiReportsTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ gbr
* JY-20725-handle-HS-search-rate-limit
master
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
JY-20160
JY-20145-filter-out-converted-leads-when-matching
JY-20150-skip-push-summary-on-summary-ready-if-autolog
JY-20132-fix-note-encoding
JY-19792-clean-logs
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ dev
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Illuminate\Database\QueryException
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'team_id' in 'WHERE' (Connection: mysql, Host: mariadb, Port: 3306, Database: jiminny, SQL: select * from `activities` where `team_id` = 2 and `activities`.`deleted_at` is null order by `id` desc limit 100)
at vendor/laravel/framework/src/Illuminate/Database/Connection.php:838
834▕ $exceptionType = $this->isUniqueConstraintError($e)
835▕ ? UniqueConstraintViolationException::class
836▕ : QueryException::class;
837▕
➜ 838▕ throw new $exceptionType(
839▕ $this->getNameWithReadWriteType(),
840▕ $query,
841▕ $this->prepareBindings($bindings),
842▕ $e,
+11 vendor frames
12 app/Console/Commands/JiminnyDebugCommand.php:380
Illuminate\Database\Eloquent\Builder::get()
13 app/Console/Commands/JiminnyDebugCommand.php:49
Jiminny\Console\Commands\JiminnyDebugCommand::simulateMatchActivityStorm()
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 10.01ms DONE
cache [PASSWORD_DOTS] 38.00ms DONE
compiled [PASSWORD_DOTS] 1.78ms DONE
events [PASSWORD_DOTS] 1.13ms DONE
routes [PASSWORD_DOTS] 1.56ms DONE
views [PASSWORD_DOTS] 3.25ms DONE
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-audio:worker-audio_00: stopped
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
artisan-schedule:artisan-schedule_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Dispatching 100 MatchActivityCrmData jobs (portal=2)
Done. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Dispatching 100 MatchActivityCrmData jobs (portal=2)
Done. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 6.34ms DONE
cache [PASSWORD_DOTS] 11.98ms DONE
compiled [PASSWORD_DOTS] 2.10ms DONE
events [PASSWORD_DOTS] 5.31ms DONE
routes [PASSWORD_DOTS] 2.90ms DONE
views [PASSWORD_DOTS] 13.11ms DONE
worker-crm-update:worker-crm-update_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 10.53ms DONE
cache [PASSWORD_DOTS] 128.25ms DONE
compiled [PASSWORD_DOTS] 1.73ms DONE
events [PASSWORD_DOTS] 1.07ms DONE
routes [PASSWORD_DOTS] 1.45ms DONE
views [PASSWORD_DOTS] 5.46ms DONE
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-emails:worker-emails_00: stopped
worker-nudges:worker-nudges_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
artisan-schedule:artisan-schedule_00: stopped
worker-es-update:worker-es-update_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Dispatching 100 MatchActivityCrmData jobs (portal=2)
Done. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Dispatching 100 MatchActivityCrmData jobs (portal=2)
Done. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 69.57ms DONE
cache [PASSWORD_DOTS] 285.32ms DONE
compiled [PASSWORD_DOTS] 13.02ms DONE
events [PASSWORD_DOTS] 11.48ms DONE
routes [PASSWORD_DOTS] 6.30ms DONE
views [PASSWORD_DOTS] 51.86ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-emails:worker-emails_00: stopped
worker-audio:worker-audio_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-syn...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"worker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nSyncing opportunity 0\nSyncing opportunity 25\nSyncing opportunity 50\nSyncing opportunity 75\nSyncing opportunity 100\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nSyncing opportunity 0\nSyncing opportunity 25\nSyncing opportunity 50\nSyncing opportunity 75\nSyncing opportunity 100\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nSyncing opportunity 0\n\n HubSpot\\Client\\Crm\\Deals\\ApiException \n\n [429] Client error: `GET https://api.hubapi.com/crm/v3/objects/deals/374720564?properties=hs_object_id%2Cdealname&associations=companies%2Ccontacts&archived=0` resulted in a `429 Too Many Requests` response:\n{\"status\":\"error\",\"message\":\"You have reached your ten_secondly_rolling limit.\",\"errorType\":\"RATE_LIMIT\",\"correlationId\" (truncated...)\n\n at vendor/hubspot/api-client/codegen/Crm/Deals/Api/BasicApi.php:704\n 700▕ $options = $this->createHttpClientOption();\n 701▕ try {\n 702▕ $response = $this->client->send($request, $options);\n 703▕ } catch (RequestException $e) {\n ➜ 704▕ throw new ApiException(\n 705▕ \"[{$e->getCode()}] {$e->getMessage()}\",\n 706▕ (int) $e->getCode(),\n 707▕ $e->getResponse() ? $e->getResponse()->getHeaders() : null,\n 708▕ $e->getResponse() ? (string) $e->getResponse()->getBody() : null\n\n +1 vendor frames \n\n 2 app/Services/Crm/Hubspot/Client.php:212\n HubSpot\\Client\\Crm\\Deals\\Api\\BasicApi::getById(\"374720564\", \"hs_object_id,dealname\", \"companies,contacts\")\n\n 3 app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php:130\n Jiminny\\Services\\Crm\\Hubspot\\Client::getOpportunityById(\"374720564\")\n\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 10.49ms DONE\n cache ............................................................................................................................... 21.31ms DONE\n compiled ............................................................................................................................. 3.11ms DONE\n events ............................................................................................................................... 5.05ms DONE\n routes ............................................................................................................................... 1.83ms DONE\n views ................................................................................................................................ 4.91ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker:worker_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 37.77ms DONE\n cache ............................................................................................................................... 58.83ms DONE\n compiled ............................................................................................................................. 9.93ms DONE\n events .............................................................................................................................. 12.23ms DONE\n routes ............................................................................................................................... 5.02ms DONE\n views ............................................................................................................................... 21.46ms DONE\n\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-download:worker-download_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker:worker_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config ............................................................................................................................... 6.01ms DONE\n cache ............................................................................................................................... 16.11ms DONE\n compiled ............................................................................................................................. 2.91ms DONE\n events ............................................................................................................................... 2.27ms DONE\n routes ............................................................................................................................... 3.11ms DONE\n views ............................................................................................................................... 18.41ms DONE\n\nworker-crm-update:worker-crm-update_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\n\n SevenShores\\Hubspot\\Exceptions\\BadRequest \n\n 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\":\"019e0284-5 (truncated...)\n\n at vendor/hubspot/hubspot-php/src/Exceptions/HubspotException.php:24\n 20▕ }\n 21▕ \n 22▕ public static function create(RequestException $guzzleException): self\n 23▕ {\n ➜ 24▕ $e = new static(\n 25▕ static::sanitizeResponseMessage($guzzleException->getMessage()),\n 26▕ $guzzleException->getCode(),\n 27▕ $guzzleException\n 28▕ );\n\n +13 vendor frames \n\n 14 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:163\n SevenShores\\Hubspot\\Http\\Client::request(\"POST\", \"https://api.hubapi.com/crm/v3/objects/contact/search\", [])\n\n 15 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:51\n Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::executeSearchRequest(Object(Jiminny\\Services\\Crm\\Hubspot\\Client), \"https://api.hubapi.com/crm/v3/objects/contact/search\", [], Object(Jiminny\\Services\\Crm\\Hubspot\\Pagination\\PaginationState))\n\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 55.84ms DONE\n cache .............................................................................................................................. 108.68ms DONE\n compiled ............................................................................................................................ 22.07ms DONE\n events .............................................................................................................................. 25.86ms DONE\n routes .............................................................................................................................. 19.91ms DONE\n views ............................................................................................................................... 52.25ms DONE\n\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\n\n TypeError \n\n Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::getPaginatedDataGenerator(): Return value must be of type Generator, none returned\n\n at app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:83\n 79▕ \n 80▕ // Update reference parameters\n 81▕ $total = $state->total;\n 82▕ $lastRecordId = $state->lastRecordId;\n ➜ 83▕ }\n 84▕ \n 85▕ private function shouldStopPagination(PaginationState $state, int $teamId): bool\n 86▕ {\n 87▕ if ($state->hasReachedSafetyLimit()) {\n\n 1 app/Services/Crm/Hubspot/Client.php:195\n Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::getPaginatedDataGenerator(Object(Jiminny\\Services\\Crm\\Hubspot\\Client), [], \"contact\")\n\n 2 app/Services/Crm/Hubspot/Client.php:176\n Jiminny\\Services\\Crm\\Hubspot\\Client::getPaginatedDataGenerator([], \"contact\")\n\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 14.73ms DONE\n cache ............................................................................................................................... 19.13ms DONE\n compiled ............................................................................................................................. 4.93ms DONE\n events ............................................................................................................................... 3.02ms DONE\n routes ............................................................................................................................... 5.55ms DONE\n views ................................................................................................................................ 6.02ms DONE\n\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-conferences:worker-conferences_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\n\n Jiminny\\Exceptions\\RateLimitException \n\n Hubspot returned 429\n\n at app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:206\n 202▕ 'retry_after' => $retryAfter,\n 203▕ 'reason' => $e->getMessage(),\n 204▕ ]);\n 205▕ \n ➜ 206▕ throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);\n 207▕ } else {\n 208▕ throw $e;\n 209▕ }\n 210▕ }\n\n +14 vendor frames \n\n 15 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:166\n SevenShores\\Hubspot\\Http\\Client::request(\"POST\", \"https://api.hubapi.com/crm/v3/objects/contact/search\", [])\n\n 16 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:52\n Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::executeSearchRequest(Object(Jiminny\\Services\\Crm\\Hubspot\\Client), \"https://api.hubapi.com/crm/v3/objects/contact/search\", [], Object(Jiminny\\Services\\Crm\\Hubspot\\Pagination\\PaginationState))\n\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config ............................................................................................................................... 4.47ms DONE\n cache ............................................................................................................................... 16.66ms DONE\n compiled ............................................................................................................................. 3.26ms DONE\n events ............................................................................................................................... 3.99ms DONE\n routes ............................................................................................................................... 3.85ms DONE\n views ................................................................................................................................ 4.93ms DONE\n\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 14.42ms DONE\n cache ............................................................................................................................... 23.70ms DONE\n compiled ............................................................................................................................. 3.46ms DONE\n events ............................................................................................................................... 4.30ms DONE\n routes ............................................................................................................................... 8.35ms DONE\n views ................................................................................................................................ 8.00ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\n\n Jiminny\\Exceptions\\RateLimitException \n\n Hubspot returned 429\n\n at app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:206\n 202▕ 'retry_after' => $retryAfter,\n 203▕ 'reason' => $e->getMessage(),\n 204▕ ]);\n 205▕ \n ➜ 206▕ throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);\n 207▕ } else {\n 208▕ throw $e;\n 209▕ }\n 210▕ }\n\n +14 vendor frames \n\n 15 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:166\n SevenShores\\Hubspot\\Http\\Client::request(\"POST\", \"https://api.hubapi.com/crm/v3/objects/contact/search\", [])\n\n 16 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:52\n Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::executeSearchRequest(Object(Jiminny\\Services\\Crm\\Hubspot\\Client), \"https://api.hubapi.com/crm/v3/objects/contact/search\", [], Object(Jiminny\\Services\\Crm\\Hubspot\\Pagination\\PaginationState))\n\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config ............................................................................................................................... 6.77ms DONE\n cache ............................................................................................................................... 25.55ms DONE\n compiled ............................................................................................................................. 3.87ms DONE\n events ............................................................................................................................... 4.96ms DONE\n routes ............................................................................................................................... 2.23ms DONE\n views ................................................................................................................................ 7.50ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-conferences:worker-conferences_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nroot@docker_lamp_1:/home/jiminny# \nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug 007d5da3af66\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ dev\nroot@docker_lamp_1:/home/jiminny# \nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug 007d5da3af66\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch JY-20725-handle-HS-search-rate-limit\nChanges to be committed:\n (use \"git restore --staged <file>...\" to unstage)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tnew file: app/Jobs/Middleware/HandleHubspotRateLimit.php\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Exceptions/RateLimitException.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Jobs/Activity/Import/MatchCrmData.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Jobs/Crm/MatchActivityCrmData.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Crm/Hubspot/Client.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Crm/Hubspot/HubspotClientInterface.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Crm/Hubspot/Pagination/PaginationState.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Crm/Hubspot/Service.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local.bak\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ gbr\n* JY-20725-handle-HS-search-rate-limit\n master\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\n JY-20160\n JY-20145-filter-out-converted-leads-when-matching\n JY-20150-skip-push-summary-on-summary-ready-if-autolog\n JY-20132-fix-note-encoding\n JY-19792-clean-logs\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ dev\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\n\n Illuminate\\Database\\QueryException \n\n SQLSTATE[42S22]: Column not found: 1054 Unknown column 'team_id' in 'WHERE' (Connection: mysql, Host: mariadb, Port: 3306, Database: jiminny, SQL: select * from `activities` where `team_id` = 2 and `activities`.`deleted_at` is null order by `id` desc limit 100)\n\n at vendor/laravel/framework/src/Illuminate/Database/Connection.php:838\n 834▕ $exceptionType = $this->isUniqueConstraintError($e)\n 835▕ ? UniqueConstraintViolationException::class\n 836▕ : QueryException::class;\n 837▕ \n ➜ 838▕ throw new $exceptionType(\n 839▕ $this->getNameWithReadWriteType(),\n 840▕ $query,\n 841▕ $this->prepareBindings($bindings),\n 842▕ $e,\n\n +11 vendor frames \n\n 12 app/Console/Commands/JiminnyDebugCommand.php:380\n Illuminate\\Database\\Eloquent\\Builder::get()\n\n 13 app/Console/Commands/JiminnyDebugCommand.php:49\n Jiminny\\Console\\Commands\\JiminnyDebugCommand::simulateMatchActivityStorm()\n\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 10.01ms DONE\n cache ............................................................................................................................... 38.00ms DONE\n compiled ............................................................................................................................. 1.78ms DONE\n events ............................................................................................................................... 1.13ms DONE\n routes ............................................................................................................................... 1.56ms DONE\n views ................................................................................................................................ 3.25ms DONE\n\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nDispatching 100 MatchActivityCrmData jobs (portal=2)\nDone. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nDispatching 100 MatchActivityCrmData jobs (portal=2)\nDone. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config ............................................................................................................................... 6.34ms DONE\n cache ............................................................................................................................... 11.98ms DONE\n compiled ............................................................................................................................. 2.10ms DONE\n events ............................................................................................................................... 5.31ms DONE\n routes ............................................................................................................................... 2.90ms DONE\n views ............................................................................................................................... 13.11ms DONE\n\nworker-crm-update:worker-crm-update_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 10.53ms DONE\n cache .............................................................................................................................. 128.25ms DONE\n compiled ............................................................................................................................. 1.73ms DONE\n events ............................................................................................................................... 1.07ms DONE\n routes ............................................................................................................................... 1.45ms DONE\n views ................................................................................................................................ 5.46ms DONE\n\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-es-update:worker-es-update_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nDispatching 100 MatchActivityCrmData jobs (portal=2)\nDone. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nDispatching 100 MatchActivityCrmData jobs (portal=2)\nDone. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 69.57ms DONE\n cache .............................................................................................................................. 285.32ms DONE\n compiled ............................................................................................................................ 13.02ms DONE\n events .............................................................................................................................. 11.48ms DONE\n routes ............................................................................................................................... 6.30ms DONE\n views ............................................................................................................................... 51.86ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-audio:worker-audio_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nDispatching 100 MatchActivityCrmData jobs (portal=2)\nDone. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 59.22ms DONE\n cache ............................................................................................................................... 97.76ms DONE\n compiled ............................................................................................................................. 2.63ms DONE\n events ............................................................................................................................... 4.67ms DONE\n routes .............................................................................................................................. 11.57ms DONE\n views ............................................................................................................................... 18.54ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-emails:worker-emails_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny#","depth":4,"on_screen":true,"value":"worker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nSyncing opportunity 0\nSyncing opportunity 25\nSyncing opportunity 50\nSyncing opportunity 75\nSyncing opportunity 100\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nSyncing opportunity 0\nSyncing opportunity 25\nSyncing opportunity 50\nSyncing opportunity 75\nSyncing opportunity 100\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nSyncing opportunity 0\n\n HubSpot\\Client\\Crm\\Deals\\ApiException \n\n [429] Client error: `GET https://api.hubapi.com/crm/v3/objects/deals/374720564?properties=hs_object_id%2Cdealname&associations=companies%2Ccontacts&archived=0` resulted in a `429 Too Many Requests` response:\n{\"status\":\"error\",\"message\":\"You have reached your ten_secondly_rolling limit.\",\"errorType\":\"RATE_LIMIT\",\"correlationId\" (truncated...)\n\n at vendor/hubspot/api-client/codegen/Crm/Deals/Api/BasicApi.php:704\n 700▕ $options = $this->createHttpClientOption();\n 701▕ try {\n 702▕ $response = $this->client->send($request, $options);\n 703▕ } catch (RequestException $e) {\n ➜ 704▕ throw new ApiException(\n 705▕ \"[{$e->getCode()}] {$e->getMessage()}\",\n 706▕ (int) $e->getCode(),\n 707▕ $e->getResponse() ? $e->getResponse()->getHeaders() : null,\n 708▕ $e->getResponse() ? (string) $e->getResponse()->getBody() : null\n\n +1 vendor frames \n\n 2 app/Services/Crm/Hubspot/Client.php:212\n HubSpot\\Client\\Crm\\Deals\\Api\\BasicApi::getById(\"374720564\", \"hs_object_id,dealname\", \"companies,contacts\")\n\n 3 app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php:130\n Jiminny\\Services\\Crm\\Hubspot\\Client::getOpportunityById(\"374720564\")\n\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 10.49ms DONE\n cache ............................................................................................................................... 21.31ms DONE\n compiled ............................................................................................................................. 3.11ms DONE\n events ............................................................................................................................... 5.05ms DONE\n routes ............................................................................................................................... 1.83ms DONE\n views ................................................................................................................................ 4.91ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker:worker_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 37.77ms DONE\n cache ............................................................................................................................... 58.83ms DONE\n compiled ............................................................................................................................. 9.93ms DONE\n events .............................................................................................................................. 12.23ms DONE\n routes ............................................................................................................................... 5.02ms DONE\n views ............................................................................................................................... 21.46ms DONE\n\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-download:worker-download_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker:worker_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config ............................................................................................................................... 6.01ms DONE\n cache ............................................................................................................................... 16.11ms DONE\n compiled ............................................................................................................................. 2.91ms DONE\n events ............................................................................................................................... 2.27ms DONE\n routes ............................................................................................................................... 3.11ms DONE\n views ............................................................................................................................... 18.41ms DONE\n\nworker-crm-update:worker-crm-update_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\n\n SevenShores\\Hubspot\\Exceptions\\BadRequest \n\n 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\":\"019e0284-5 (truncated...)\n\n at vendor/hubspot/hubspot-php/src/Exceptions/HubspotException.php:24\n 20▕ }\n 21▕ \n 22▕ public static function create(RequestException $guzzleException): self\n 23▕ {\n ➜ 24▕ $e = new static(\n 25▕ static::sanitizeResponseMessage($guzzleException->getMessage()),\n 26▕ $guzzleException->getCode(),\n 27▕ $guzzleException\n 28▕ );\n\n +13 vendor frames \n\n 14 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:163\n SevenShores\\Hubspot\\Http\\Client::request(\"POST\", \"https://api.hubapi.com/crm/v3/objects/contact/search\", [])\n\n 15 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:51\n Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::executeSearchRequest(Object(Jiminny\\Services\\Crm\\Hubspot\\Client), \"https://api.hubapi.com/crm/v3/objects/contact/search\", [], Object(Jiminny\\Services\\Crm\\Hubspot\\Pagination\\PaginationState))\n\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 55.84ms DONE\n cache .............................................................................................................................. 108.68ms DONE\n compiled ............................................................................................................................ 22.07ms DONE\n events .............................................................................................................................. 25.86ms DONE\n routes .............................................................................................................................. 19.91ms DONE\n views ............................................................................................................................... 52.25ms DONE\n\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\n\n TypeError \n\n Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::getPaginatedDataGenerator(): Return value must be of type Generator, none returned\n\n at app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:83\n 79▕ \n 80▕ // Update reference parameters\n 81▕ $total = $state->total;\n 82▕ $lastRecordId = $state->lastRecordId;\n ➜ 83▕ }\n 84▕ \n 85▕ private function shouldStopPagination(PaginationState $state, int $teamId): bool\n 86▕ {\n 87▕ if ($state->hasReachedSafetyLimit()) {\n\n 1 app/Services/Crm/Hubspot/Client.php:195\n Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::getPaginatedDataGenerator(Object(Jiminny\\Services\\Crm\\Hubspot\\Client), [], \"contact\")\n\n 2 app/Services/Crm/Hubspot/Client.php:176\n Jiminny\\Services\\Crm\\Hubspot\\Client::getPaginatedDataGenerator([], \"contact\")\n\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 14.73ms DONE\n cache ............................................................................................................................... 19.13ms DONE\n compiled ............................................................................................................................. 4.93ms DONE\n events ............................................................................................................................... 3.02ms DONE\n routes ............................................................................................................................... 5.55ms DONE\n views ................................................................................................................................ 6.02ms DONE\n\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-conferences:worker-conferences_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\n\n Jiminny\\Exceptions\\RateLimitException \n\n Hubspot returned 429\n\n at app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:206\n 202▕ 'retry_after' => $retryAfter,\n 203▕ 'reason' => $e->getMessage(),\n 204▕ ]);\n 205▕ \n ➜ 206▕ throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);\n 207▕ } else {\n 208▕ throw $e;\n 209▕ }\n 210▕ }\n\n +14 vendor frames \n\n 15 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:166\n SevenShores\\Hubspot\\Http\\Client::request(\"POST\", \"https://api.hubapi.com/crm/v3/objects/contact/search\", [])\n\n 16 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:52\n Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::executeSearchRequest(Object(Jiminny\\Services\\Crm\\Hubspot\\Client), \"https://api.hubapi.com/crm/v3/objects/contact/search\", [], Object(Jiminny\\Services\\Crm\\Hubspot\\Pagination\\PaginationState))\n\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config ............................................................................................................................... 4.47ms DONE\n cache ............................................................................................................................... 16.66ms DONE\n compiled ............................................................................................................................. 3.26ms DONE\n events ............................................................................................................................... 3.99ms DONE\n routes ............................................................................................................................... 3.85ms DONE\n views ................................................................................................................................ 4.93ms DONE\n\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 14.42ms DONE\n cache ............................................................................................................................... 23.70ms DONE\n compiled ............................................................................................................................. 3.46ms DONE\n events ............................................................................................................................... 4.30ms DONE\n routes ............................................................................................................................... 8.35ms DONE\n views ................................................................................................................................ 8.00ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\n\n Jiminny\\Exceptions\\RateLimitException \n\n Hubspot returned 429\n\n at app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:206\n 202▕ 'retry_after' => $retryAfter,\n 203▕ 'reason' => $e->getMessage(),\n 204▕ ]);\n 205▕ \n ➜ 206▕ throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);\n 207▕ } else {\n 208▕ throw $e;\n 209▕ }\n 210▕ }\n\n +14 vendor frames \n\n 15 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:166\n SevenShores\\Hubspot\\Http\\Client::request(\"POST\", \"https://api.hubapi.com/crm/v3/objects/contact/search\", [])\n\n 16 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:52\n Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::executeSearchRequest(Object(Jiminny\\Services\\Crm\\Hubspot\\Client), \"https://api.hubapi.com/crm/v3/objects/contact/search\", [], Object(Jiminny\\Services\\Crm\\Hubspot\\Pagination\\PaginationState))\n\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config ............................................................................................................................... 6.77ms DONE\n cache ............................................................................................................................... 25.55ms DONE\n compiled ............................................................................................................................. 3.87ms DONE\n events ............................................................................................................................... 4.96ms DONE\n routes ............................................................................................................................... 2.23ms DONE\n views ................................................................................................................................ 7.50ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-conferences:worker-conferences_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nroot@docker_lamp_1:/home/jiminny# \nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug 007d5da3af66\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ dev\nroot@docker_lamp_1:/home/jiminny# \nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug 007d5da3af66\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch JY-20725-handle-HS-search-rate-limit\nChanges to be committed:\n (use \"git restore --staged <file>...\" to unstage)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tnew file: app/Jobs/Middleware/HandleHubspotRateLimit.php\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Exceptions/RateLimitException.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Jobs/Activity/Import/MatchCrmData.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Jobs/Crm/MatchActivityCrmData.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Crm/Hubspot/Client.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Crm/Hubspot/HubspotClientInterface.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Crm/Hubspot/Pagination/PaginationState.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Crm/Hubspot/Service.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local.bak\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ gbr\n* JY-20725-handle-HS-search-rate-limit\n master\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\n JY-20160\n JY-20145-filter-out-converted-leads-when-matching\n JY-20150-skip-push-summary-on-summary-ready-if-autolog\n JY-20132-fix-note-encoding\n JY-19792-clean-logs\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ dev\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\n\n Illuminate\\Database\\QueryException \n\n SQLSTATE[42S22]: Column not found: 1054 Unknown column 'team_id' in 'WHERE' (Connection: mysql, Host: mariadb, Port: 3306, Database: jiminny, SQL: select * from `activities` where `team_id` = 2 and `activities`.`deleted_at` is null order by `id` desc limit 100)\n\n at vendor/laravel/framework/src/Illuminate/Database/Connection.php:838\n 834▕ $exceptionType = $this->isUniqueConstraintError($e)\n 835▕ ? UniqueConstraintViolationException::class\n 836▕ : QueryException::class;\n 837▕ \n ➜ 838▕ throw new $exceptionType(\n 839▕ $this->getNameWithReadWriteType(),\n 840▕ $query,\n 841▕ $this->prepareBindings($bindings),\n 842▕ $e,\n\n +11 vendor frames \n\n 12 app/Console/Commands/JiminnyDebugCommand.php:380\n Illuminate\\Database\\Eloquent\\Builder::get()\n\n 13 app/Console/Commands/JiminnyDebugCommand.php:49\n Jiminny\\Console\\Commands\\JiminnyDebugCommand::simulateMatchActivityStorm()\n\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 10.01ms DONE\n cache ............................................................................................................................... 38.00ms DONE\n compiled ............................................................................................................................. 1.78ms DONE\n events ............................................................................................................................... 1.13ms DONE\n routes ............................................................................................................................... 1.56ms DONE\n views ................................................................................................................................ 3.25ms DONE\n\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nDispatching 100 MatchActivityCrmData jobs (portal=2)\nDone. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nDispatching 100 MatchActivityCrmData jobs (portal=2)\nDone. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config ............................................................................................................................... 6.34ms DONE\n cache ............................................................................................................................... 11.98ms DONE\n compiled ............................................................................................................................. 2.10ms DONE\n events ............................................................................................................................... 5.31ms DONE\n routes ............................................................................................................................... 2.90ms DONE\n views ............................................................................................................................... 13.11ms DONE\n\nworker-crm-update:worker-crm-update_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 10.53ms DONE\n cache .............................................................................................................................. 128.25ms DONE\n compiled ............................................................................................................................. 1.73ms DONE\n events ............................................................................................................................... 1.07ms DONE\n routes ............................................................................................................................... 1.45ms DONE\n views ................................................................................................................................ 5.46ms DONE\n\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-es-update:worker-es-update_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nDispatching 100 MatchActivityCrmData jobs (portal=2)\nDone. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nDispatching 100 MatchActivityCrmData jobs (portal=2)\nDone. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 69.57ms DONE\n cache .............................................................................................................................. 285.32ms DONE\n compiled ............................................................................................................................ 13.02ms DONE\n events .............................................................................................................................. 11.48ms DONE\n routes ............................................................................................................................... 6.30ms DONE\n views ............................................................................................................................... 51.86ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-audio:worker-audio_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nDispatching 100 MatchActivityCrmData jobs (portal=2)\nDone. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 59.22ms DONE\n cache ............................................................................................................................... 97.76ms DONE\n compiled ............................................................................................................................. 2.63ms DONE\n events ............................................................................................................................... 4.67ms DONE\n routes .............................................................................................................................. 11.57ms DONE\n views ............................................................................................................................... 18.54ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-emails:worker-emails_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.140625,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.140625,"top":0.05888889,"width":0.140625,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.14479166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.28125,"top":0.05888889,"width":0.140625,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.28541666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.421875,"top":0.05888889,"width":0.140625,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42604166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5625,"top":0.05888889,"width":0.14027777,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56666666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7027778,"top":0.05888889,"width":0.14027777,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.70694447,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.84305555,"top":0.05888889,"width":0.14027777,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8472222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.46875,"top":0.033333335,"width":0.0625,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
-5063400118493784605
|
4435031406530046724
|
click
|
accessibility
|
NULL
|
worker-conferences:worker-conferences_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Syncing opportunity 0
Syncing opportunity 25
Syncing opportunity 50
Syncing opportunity 75
Syncing opportunity 100
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Syncing opportunity 0
Syncing opportunity 25
Syncing opportunity 50
Syncing opportunity 75
Syncing opportunity 100
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Syncing opportunity 0
HubSpot\Client\Crm\Deals\ApiException
[429] Client error: `GET [URL_WITH_CREDENTIALS] php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 10.49ms DONE
cache [PASSWORD_DOTS] 21.31ms DONE
compiled [PASSWORD_DOTS] 3.11ms DONE
events [PASSWORD_DOTS] 5.05ms DONE
routes [PASSWORD_DOTS] 1.83ms DONE
views [PASSWORD_DOTS] 4.91ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
worker:worker_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
artisan-schedule:artisan-schedule_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 37.77ms DONE
cache [PASSWORD_DOTS] 58.83ms DONE
compiled [PASSWORD_DOTS] 9.93ms DONE
events [PASSWORD_DOTS] 12.23ms DONE
routes [PASSWORD_DOTS] 5.02ms DONE
views [PASSWORD_DOTS] 21.46ms DONE
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-download:worker-download_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker:worker_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 6.01ms DONE
cache [PASSWORD_DOTS] 16.11ms DONE
compiled [PASSWORD_DOTS] 2.91ms DONE
events [PASSWORD_DOTS] 2.27ms DONE
routes [PASSWORD_DOTS] 3.11ms DONE
views [PASSWORD_DOTS] 18.41ms DONE
worker-crm-update:worker-crm-update_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
SevenShores\Hubspot\Exceptions\BadRequest
Client error: `POST [URL_WITH_CREDENTIALS] php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 55.84ms DONE
cache [PASSWORD_DOTS] 108.68ms DONE
compiled [PASSWORD_DOTS] 22.07ms DONE
events [PASSWORD_DOTS] 25.86ms DONE
routes [PASSWORD_DOTS] 19.91ms DONE
views [PASSWORD_DOTS] 52.25ms DONE
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
artisan-schedule:artisan-schedule_00: stopped
worker-audio:worker-audio_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
TypeError
Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService::getPaginatedDataGenerator(): Return value must be of type Generator, none returned
at app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:83
79▕
80▕ // Update reference parameters
81▕ $total = $state->total;
82▕ $lastRecordId = $state->lastRecordId;
➜ 83▕ }
84▕
85▕ private function shouldStopPagination(PaginationState $state, int $teamId): bool
86▕ {
87▕ if ($state->hasReachedSafetyLimit()) {
1 app/Services/Crm/Hubspot/Client.php:195
Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService::getPaginatedDataGenerator(Object(Jiminny\Services\Crm\Hubspot\Client), [], "contact")
2 app/Services/Crm/Hubspot/Client.php:176
Jiminny\Services\Crm\Hubspot\Client::getPaginatedDataGenerator([], "contact")
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 14.73ms DONE
cache [PASSWORD_DOTS] 19.13ms DONE
compiled [PASSWORD_DOTS] 4.93ms DONE
events [PASSWORD_DOTS] 3.02ms DONE
routes [PASSWORD_DOTS] 5.55ms DONE
views [PASSWORD_DOTS] 6.02ms DONE
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-conferences:worker-conferences_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Jiminny\Exceptions\RateLimitException
Hubspot returned 429
at app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:206
202▕ 'retry_after' => $retryAfter,
203▕ 'reason' => $e->getMessage(),
204▕ ]);
205▕
➜ 206▕ throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
207▕ } else {
208▕ throw $e;
209▕ }
210▕ }
+14 vendor frames
15 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:166
SevenShores\Hubspot\Http\Client::request("POST", "[URL_WITH_CREDENTIALS] php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 4.47ms DONE
cache [PASSWORD_DOTS] 16.66ms DONE
compiled [PASSWORD_DOTS] 3.26ms DONE
events [PASSWORD_DOTS] 3.99ms DONE
routes [PASSWORD_DOTS] 3.85ms DONE
views [PASSWORD_DOTS] 4.93ms DONE
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 14.42ms DONE
cache [PASSWORD_DOTS] 23.70ms DONE
compiled [PASSWORD_DOTS] 3.46ms DONE
events [PASSWORD_DOTS] 4.30ms DONE
routes [PASSWORD_DOTS] 8.35ms DONE
views [PASSWORD_DOTS] 8.00ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-crm-update:worker-crm-update_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Jiminny\Exceptions\RateLimitException
Hubspot returned 429
at app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:206
202▕ 'retry_after' => $retryAfter,
203▕ 'reason' => $e->getMessage(),
204▕ ]);
205▕
➜ 206▕ throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
207▕ } else {
208▕ throw $e;
209▕ }
210▕ }
+14 vendor frames
15 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:166
SevenShores\Hubspot\Http\Client::request("POST", "[URL_WITH_CREDENTIALS] php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 6.77ms DONE
cache [PASSWORD_DOTS] 25.55ms DONE
compiled [PASSWORD_DOTS] 3.87ms DONE
events [PASSWORD_DOTS] 4.96ms DONE
routes [PASSWORD_DOTS] 2.23ms DONE
views [PASSWORD_DOTS] 7.50ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
worker-conferences:worker-conferences_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
root@docker_lamp_1:/home/jiminny#
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug 007d5da3af66
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch JY-20725-handle-HS-search-rate-limit
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: app/Jobs/Middleware/HandleHubspotRateLimit.php
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/Exceptions/RateLimitException.php
modified: app/Jobs/Activity/Import/MatchCrmData.php
modified: app/Jobs/Crm/MatchActivityCrmData.php
modified: app/Services/Crm/Hubspot/Client.php
modified: app/Services/Crm/Hubspot/HubspotClientInterface.php
modified: app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
modified: app/Services/Crm/Hubspot/Pagination/PaginationState.php
modified: app/Services/Crm/Hubspot/Service.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.local.bak
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Policies/CanAccessAiReportsTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ gbr
* JY-20725-handle-HS-search-rate-limit
master
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
JY-20160
JY-20145-filter-out-converted-leads-when-matching
JY-20150-skip-push-summary-on-summary-ready-if-autolog
JY-20132-fix-note-encoding
JY-19792-clean-logs
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ dev
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Illuminate\Database\QueryException
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'team_id' in 'WHERE' (Connection: mysql, Host: mariadb, Port: 3306, Database: jiminny, SQL: select * from `activities` where `team_id` = 2 and `activities`.`deleted_at` is null order by `id` desc limit 100)
at vendor/laravel/framework/src/Illuminate/Database/Connection.php:838
834▕ $exceptionType = $this->isUniqueConstraintError($e)
835▕ ? UniqueConstraintViolationException::class
836▕ : QueryException::class;
837▕
➜ 838▕ throw new $exceptionType(
839▕ $this->getNameWithReadWriteType(),
840▕ $query,
841▕ $this->prepareBindings($bindings),
842▕ $e,
+11 vendor frames
12 app/Console/Commands/JiminnyDebugCommand.php:380
Illuminate\Database\Eloquent\Builder::get()
13 app/Console/Commands/JiminnyDebugCommand.php:49
Jiminny\Console\Commands\JiminnyDebugCommand::simulateMatchActivityStorm()
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 10.01ms DONE
cache [PASSWORD_DOTS] 38.00ms DONE
compiled [PASSWORD_DOTS] 1.78ms DONE
events [PASSWORD_DOTS] 1.13ms DONE
routes [PASSWORD_DOTS] 1.56ms DONE
views [PASSWORD_DOTS] 3.25ms DONE
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-audio:worker-audio_00: stopped
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
artisan-schedule:artisan-schedule_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Dispatching 100 MatchActivityCrmData jobs (portal=2)
Done. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Dispatching 100 MatchActivityCrmData jobs (portal=2)
Done. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 6.34ms DONE
cache [PASSWORD_DOTS] 11.98ms DONE
compiled [PASSWORD_DOTS] 2.10ms DONE
events [PASSWORD_DOTS] 5.31ms DONE
routes [PASSWORD_DOTS] 2.90ms DONE
views [PASSWORD_DOTS] 13.11ms DONE
worker-crm-update:worker-crm-update_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 10.53ms DONE
cache [PASSWORD_DOTS] 128.25ms DONE
compiled [PASSWORD_DOTS] 1.73ms DONE
events [PASSWORD_DOTS] 1.07ms DONE
routes [PASSWORD_DOTS] 1.45ms DONE
views [PASSWORD_DOTS] 5.46ms DONE
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-emails:worker-emails_00: stopped
worker-nudges:worker-nudges_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
artisan-schedule:artisan-schedule_00: stopped
worker-es-update:worker-es-update_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Dispatching 100 MatchActivityCrmData jobs (portal=2)
Done. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Dispatching 100 MatchActivityCrmData jobs (portal=2)
Done. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 69.57ms DONE
cache [PASSWORD_DOTS] 285.32ms DONE
compiled [PASSWORD_DOTS] 13.02ms DONE
events [PASSWORD_DOTS] 11.48ms DONE
routes [PASSWORD_DOTS] 6.30ms DONE
views [PASSWORD_DOTS] 51.86ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-emails:worker-emails_00: stopped
worker-audio:worker-audio_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-syn...
|
18285
|
NULL
|
NULL
|
NULL
|
|
18287
|
NULL
|
0
|
2026-05-11T11:08:11.540857+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497691540_m2.jpg...
|
iTerm2
|
DEV (docker)
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
worker-conferences:worker-conferences_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Syncing opportunity 0
Syncing opportunity 25
Syncing opportunity 50
Syncing opportunity 75
Syncing opportunity 100
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Syncing opportunity 0
Syncing opportunity 25
Syncing opportunity 50
Syncing opportunity 75
Syncing opportunity 100
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Syncing opportunity 0
HubSpot\Client\Crm\Deals\ApiException
[429] Client error: `GET [URL_WITH_CREDENTIALS] php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 10.49ms DONE
cache [PASSWORD_DOTS] 21.31ms DONE
compiled [PASSWORD_DOTS] 3.11ms DONE
events [PASSWORD_DOTS] 5.05ms DONE
routes [PASSWORD_DOTS] 1.83ms DONE
views [PASSWORD_DOTS] 4.91ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
worker:worker_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
artisan-schedule:artisan-schedule_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 37.77ms DONE
cache [PASSWORD_DOTS] 58.83ms DONE
compiled [PASSWORD_DOTS] 9.93ms DONE
events [PASSWORD_DOTS] 12.23ms DONE
routes [PASSWORD_DOTS] 5.02ms DONE
views [PASSWORD_DOTS] 21.46ms DONE
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-download:worker-download_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker:worker_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 6.01ms DONE
cache [PASSWORD_DOTS] 16.11ms DONE
compiled [PASSWORD_DOTS] 2.91ms DONE
events [PASSWORD_DOTS] 2.27ms DONE
routes [PASSWORD_DOTS] 3.11ms DONE
views [PASSWORD_DOTS] 18.41ms DONE
worker-crm-update:worker-crm-update_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
SevenShores\Hubspot\Exceptions\BadRequest
Client error: `POST [URL_WITH_CREDENTIALS] php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 55.84ms DONE
cache [PASSWORD_DOTS] 108.68ms DONE
compiled [PASSWORD_DOTS] 22.07ms DONE
events [PASSWORD_DOTS] 25.86ms DONE
routes [PASSWORD_DOTS] 19.91ms DONE
views [PASSWORD_DOTS] 52.25ms DONE
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
artisan-schedule:artisan-schedule_00: stopped
worker-audio:worker-audio_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
TypeError
Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService::getPaginatedDataGenerator(): Return value must be of type Generator, none returned
at app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:83
79▕
80▕ // Update reference parameters
81▕ $total = $state->total;
82▕ $lastRecordId = $state->lastRecordId;
➜ 83▕ }
84▕
85▕ private function shouldStopPagination(PaginationState $state, int $teamId): bool
86▕ {
87▕ if ($state->hasReachedSafetyLimit()) {
1 app/Services/Crm/Hubspot/Client.php:195
Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService::getPaginatedDataGenerator(Object(Jiminny\Services\Crm\Hubspot\Client), [], "contact")
2 app/Services/Crm/Hubspot/Client.php:176
Jiminny\Services\Crm\Hubspot\Client::getPaginatedDataGenerator([], "contact")
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 14.73ms DONE
cache [PASSWORD_DOTS] 19.13ms DONE
compiled [PASSWORD_DOTS] 4.93ms DONE
events [PASSWORD_DOTS] 3.02ms DONE
routes [PASSWORD_DOTS] 5.55ms DONE
views [PASSWORD_DOTS] 6.02ms DONE
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-conferences:worker-conferences_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Jiminny\Exceptions\RateLimitException
Hubspot returned 429
at app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:206
202▕ 'retry_after' => $retryAfter,
203▕ 'reason' => $e->getMessage(),
204▕ ]);
205▕
➜ 206▕ throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
207▕ } else {
208▕ throw $e;
209▕ }
210▕ }
+14 vendor frames
15 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:166
SevenShores\Hubspot\Http\Client::request("POST", "[URL_WITH_CREDENTIALS] php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 4.47ms DONE
cache [PASSWORD_DOTS] 16.66ms DONE
compiled [PASSWORD_DOTS] 3.26ms DONE
events [PASSWORD_DOTS] 3.99ms DONE
routes [PASSWORD_DOTS] 3.85ms DONE
views [PASSWORD_DOTS] 4.93ms DONE
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 14.42ms DONE
cache [PASSWORD_DOTS] 23.70ms DONE
compiled [PASSWORD_DOTS] 3.46ms DONE
events [PASSWORD_DOTS] 4.30ms DONE
routes [PASSWORD_DOTS] 8.35ms DONE
views [PASSWORD_DOTS] 8.00ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-crm-update:worker-crm-update_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Jiminny\Exceptions\RateLimitException
Hubspot returned 429
at app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:206
202▕ 'retry_after' => $retryAfter,
203▕ 'reason' => $e->getMessage(),
204▕ ]);
205▕
➜ 206▕ throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
207▕ } else {
208▕ throw $e;
209▕ }
210▕ }
+14 vendor frames
15 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:166
SevenShores\Hubspot\Http\Client::request("POST", "[URL_WITH_CREDENTIALS] php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 6.77ms DONE
cache [PASSWORD_DOTS] 25.55ms DONE
compiled [PASSWORD_DOTS] 3.87ms DONE
events [PASSWORD_DOTS] 4.96ms DONE
routes [PASSWORD_DOTS] 2.23ms DONE
views [PASSWORD_DOTS] 7.50ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
worker-conferences:worker-conferences_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
root@docker_lamp_1:/home/jiminny#
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug 007d5da3af66
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch JY-20725-handle-HS-search-rate-limit
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: app/Jobs/Middleware/HandleHubspotRateLimit.php
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/Exceptions/RateLimitException.php
modified: app/Jobs/Activity/Import/MatchCrmData.php
modified: app/Jobs/Crm/MatchActivityCrmData.php
modified: app/Services/Crm/Hubspot/Client.php
modified: app/Services/Crm/Hubspot/HubspotClientInterface.php
modified: app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
modified: app/Services/Crm/Hubspot/Pagination/PaginationState.php
modified: app/Services/Crm/Hubspot/Service.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.local.bak
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Policies/CanAccessAiReportsTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ gbr
* JY-20725-handle-HS-search-rate-limit
master
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
JY-20160
JY-20145-filter-out-converted-leads-when-matching
JY-20150-skip-push-summary-on-summary-ready-if-autolog
JY-20132-fix-note-encoding
JY-19792-clean-logs
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ dev
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Illuminate\Database\QueryException
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'team_id' in 'WHERE' (Connection: mysql, Host: mariadb, Port: 3306, Database: jiminny, SQL: select * from `activities` where `team_id` = 2 and `activities`.`deleted_at` is null order by `id` desc limit 100)
at vendor/laravel/framework/src/Illuminate/Database/Connection.php:838
834▕ $exceptionType = $this->isUniqueConstraintError($e)
835▕ ? UniqueConstraintViolationException::class
836▕ : QueryException::class;
837▕
➜ 838▕ throw new $exceptionType(
839▕ $this->getNameWithReadWriteType(),
840▕ $query,
841▕ $this->prepareBindings($bindings),
842▕ $e,
+11 vendor frames
12 app/Console/Commands/JiminnyDebugCommand.php:380
Illuminate\Database\Eloquent\Builder::get()
13 app/Console/Commands/JiminnyDebugCommand.php:49
Jiminny\Console\Commands\JiminnyDebugCommand::simulateMatchActivityStorm()
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 10.01ms DONE
cache [PASSWORD_DOTS] 38.00ms DONE
compiled [PASSWORD_DOTS] 1.78ms DONE
events [PASSWORD_DOTS] 1.13ms DONE
routes [PASSWORD_DOTS] 1.56ms DONE
views [PASSWORD_DOTS] 3.25ms DONE
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-audio:worker-audio_00: stopped
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
artisan-schedule:artisan-schedule_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Dispatching 100 MatchActivityCrmData jobs (portal=2)
Done. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Dispatching 100 MatchActivityCrmData jobs (portal=2)
Done. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 6.34ms DONE
cache [PASSWORD_DOTS] 11.98ms DONE
compiled [PASSWORD_DOTS] 2.10ms DONE
events [PASSWORD_DOTS] 5.31ms DONE
routes [PASSWORD_DOTS] 2.90ms DONE
views [PASSWORD_DOTS] 13.11ms DONE
worker-crm-update:worker-crm-update_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 10.53ms DONE
cache [PASSWORD_DOTS] 128.25ms DONE
compiled [PASSWORD_DOTS] 1.73ms DONE
events [PASSWORD_DOTS] 1.07ms DONE
routes [PASSWORD_DOTS] 1.45ms DONE
views [PASSWORD_DOTS] 5.46ms DONE
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-emails:worker-emails_00: stopped
worker-nudges:worker-nudges_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
artisan-schedule:artisan-schedule_00: stopped
worker-es-update:worker-es-update_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Dispatching 100 MatchActivityCrmData jobs (portal=2)
Done. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Dispatching 100 MatchActivityCrmData jobs (portal=2)
Done. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 69.57ms DONE
cache [PASSWORD_DOTS] 285.32ms DONE
compiled [PASSWORD_DOTS] 13.02ms DONE
events [PASSWORD_DOTS] 11.48ms DONE
routes [PASSWORD_DOTS] 6.30ms DONE
views [PASSWORD_DOTS] 51.86ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-emails:worker-emails_00: stopped
worker-audio:worker-audio_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-syn...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"worker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nSyncing opportunity 0\nSyncing opportunity 25\nSyncing opportunity 50\nSyncing opportunity 75\nSyncing opportunity 100\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nSyncing opportunity 0\nSyncing opportunity 25\nSyncing opportunity 50\nSyncing opportunity 75\nSyncing opportunity 100\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nSyncing opportunity 0\n\n HubSpot\\Client\\Crm\\Deals\\ApiException \n\n [429] Client error: `GET https://api.hubapi.com/crm/v3/objects/deals/374720564?properties=hs_object_id%2Cdealname&associations=companies%2Ccontacts&archived=0` resulted in a `429 Too Many Requests` response:\n{\"status\":\"error\",\"message\":\"You have reached your ten_secondly_rolling limit.\",\"errorType\":\"RATE_LIMIT\",\"correlationId\" (truncated...)\n\n at vendor/hubspot/api-client/codegen/Crm/Deals/Api/BasicApi.php:704\n 700▕ $options = $this->createHttpClientOption();\n 701▕ try {\n 702▕ $response = $this->client->send($request, $options);\n 703▕ } catch (RequestException $e) {\n ➜ 704▕ throw new ApiException(\n 705▕ \"[{$e->getCode()}] {$e->getMessage()}\",\n 706▕ (int) $e->getCode(),\n 707▕ $e->getResponse() ? $e->getResponse()->getHeaders() : null,\n 708▕ $e->getResponse() ? (string) $e->getResponse()->getBody() : null\n\n +1 vendor frames \n\n 2 app/Services/Crm/Hubspot/Client.php:212\n HubSpot\\Client\\Crm\\Deals\\Api\\BasicApi::getById(\"374720564\", \"hs_object_id,dealname\", \"companies,contacts\")\n\n 3 app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php:130\n Jiminny\\Services\\Crm\\Hubspot\\Client::getOpportunityById(\"374720564\")\n\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 10.49ms DONE\n cache ............................................................................................................................... 21.31ms DONE\n compiled ............................................................................................................................. 3.11ms DONE\n events ............................................................................................................................... 5.05ms DONE\n routes ............................................................................................................................... 1.83ms DONE\n views ................................................................................................................................ 4.91ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker:worker_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 37.77ms DONE\n cache ............................................................................................................................... 58.83ms DONE\n compiled ............................................................................................................................. 9.93ms DONE\n events .............................................................................................................................. 12.23ms DONE\n routes ............................................................................................................................... 5.02ms DONE\n views ............................................................................................................................... 21.46ms DONE\n\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-download:worker-download_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker:worker_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config ............................................................................................................................... 6.01ms DONE\n cache ............................................................................................................................... 16.11ms DONE\n compiled ............................................................................................................................. 2.91ms DONE\n events ............................................................................................................................... 2.27ms DONE\n routes ............................................................................................................................... 3.11ms DONE\n views ............................................................................................................................... 18.41ms DONE\n\nworker-crm-update:worker-crm-update_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\n\n SevenShores\\Hubspot\\Exceptions\\BadRequest \n\n 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\":\"019e0284-5 (truncated...)\n\n at vendor/hubspot/hubspot-php/src/Exceptions/HubspotException.php:24\n 20▕ }\n 21▕ \n 22▕ public static function create(RequestException $guzzleException): self\n 23▕ {\n ➜ 24▕ $e = new static(\n 25▕ static::sanitizeResponseMessage($guzzleException->getMessage()),\n 26▕ $guzzleException->getCode(),\n 27▕ $guzzleException\n 28▕ );\n\n +13 vendor frames \n\n 14 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:163\n SevenShores\\Hubspot\\Http\\Client::request(\"POST\", \"https://api.hubapi.com/crm/v3/objects/contact/search\", [])\n\n 15 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:51\n Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::executeSearchRequest(Object(Jiminny\\Services\\Crm\\Hubspot\\Client), \"https://api.hubapi.com/crm/v3/objects/contact/search\", [], Object(Jiminny\\Services\\Crm\\Hubspot\\Pagination\\PaginationState))\n\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 55.84ms DONE\n cache .............................................................................................................................. 108.68ms DONE\n compiled ............................................................................................................................ 22.07ms DONE\n events .............................................................................................................................. 25.86ms DONE\n routes .............................................................................................................................. 19.91ms DONE\n views ............................................................................................................................... 52.25ms DONE\n\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\n\n TypeError \n\n Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::getPaginatedDataGenerator(): Return value must be of type Generator, none returned\n\n at app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:83\n 79▕ \n 80▕ // Update reference parameters\n 81▕ $total = $state->total;\n 82▕ $lastRecordId = $state->lastRecordId;\n ➜ 83▕ }\n 84▕ \n 85▕ private function shouldStopPagination(PaginationState $state, int $teamId): bool\n 86▕ {\n 87▕ if ($state->hasReachedSafetyLimit()) {\n\n 1 app/Services/Crm/Hubspot/Client.php:195\n Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::getPaginatedDataGenerator(Object(Jiminny\\Services\\Crm\\Hubspot\\Client), [], \"contact\")\n\n 2 app/Services/Crm/Hubspot/Client.php:176\n Jiminny\\Services\\Crm\\Hubspot\\Client::getPaginatedDataGenerator([], \"contact\")\n\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 14.73ms DONE\n cache ............................................................................................................................... 19.13ms DONE\n compiled ............................................................................................................................. 4.93ms DONE\n events ............................................................................................................................... 3.02ms DONE\n routes ............................................................................................................................... 5.55ms DONE\n views ................................................................................................................................ 6.02ms DONE\n\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-conferences:worker-conferences_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\n\n Jiminny\\Exceptions\\RateLimitException \n\n Hubspot returned 429\n\n at app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:206\n 202▕ 'retry_after' => $retryAfter,\n 203▕ 'reason' => $e->getMessage(),\n 204▕ ]);\n 205▕ \n ➜ 206▕ throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);\n 207▕ } else {\n 208▕ throw $e;\n 209▕ }\n 210▕ }\n\n +14 vendor frames \n\n 15 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:166\n SevenShores\\Hubspot\\Http\\Client::request(\"POST\", \"https://api.hubapi.com/crm/v3/objects/contact/search\", [])\n\n 16 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:52\n Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::executeSearchRequest(Object(Jiminny\\Services\\Crm\\Hubspot\\Client), \"https://api.hubapi.com/crm/v3/objects/contact/search\", [], Object(Jiminny\\Services\\Crm\\Hubspot\\Pagination\\PaginationState))\n\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config ............................................................................................................................... 4.47ms DONE\n cache ............................................................................................................................... 16.66ms DONE\n compiled ............................................................................................................................. 3.26ms DONE\n events ............................................................................................................................... 3.99ms DONE\n routes ............................................................................................................................... 3.85ms DONE\n views ................................................................................................................................ 4.93ms DONE\n\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 14.42ms DONE\n cache ............................................................................................................................... 23.70ms DONE\n compiled ............................................................................................................................. 3.46ms DONE\n events ............................................................................................................................... 4.30ms DONE\n routes ............................................................................................................................... 8.35ms DONE\n views ................................................................................................................................ 8.00ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\n\n Jiminny\\Exceptions\\RateLimitException \n\n Hubspot returned 429\n\n at app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:206\n 202▕ 'retry_after' => $retryAfter,\n 203▕ 'reason' => $e->getMessage(),\n 204▕ ]);\n 205▕ \n ➜ 206▕ throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);\n 207▕ } else {\n 208▕ throw $e;\n 209▕ }\n 210▕ }\n\n +14 vendor frames \n\n 15 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:166\n SevenShores\\Hubspot\\Http\\Client::request(\"POST\", \"https://api.hubapi.com/crm/v3/objects/contact/search\", [])\n\n 16 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:52\n Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::executeSearchRequest(Object(Jiminny\\Services\\Crm\\Hubspot\\Client), \"https://api.hubapi.com/crm/v3/objects/contact/search\", [], Object(Jiminny\\Services\\Crm\\Hubspot\\Pagination\\PaginationState))\n\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config ............................................................................................................................... 6.77ms DONE\n cache ............................................................................................................................... 25.55ms DONE\n compiled ............................................................................................................................. 3.87ms DONE\n events ............................................................................................................................... 4.96ms DONE\n routes ............................................................................................................................... 2.23ms DONE\n views ................................................................................................................................ 7.50ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-conferences:worker-conferences_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nroot@docker_lamp_1:/home/jiminny# \nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug 007d5da3af66\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ dev\nroot@docker_lamp_1:/home/jiminny# \nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug 007d5da3af66\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch JY-20725-handle-HS-search-rate-limit\nChanges to be committed:\n (use \"git restore --staged <file>...\" to unstage)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tnew file: app/Jobs/Middleware/HandleHubspotRateLimit.php\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Exceptions/RateLimitException.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Jobs/Activity/Import/MatchCrmData.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Jobs/Crm/MatchActivityCrmData.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Crm/Hubspot/Client.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Crm/Hubspot/HubspotClientInterface.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Crm/Hubspot/Pagination/PaginationState.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Crm/Hubspot/Service.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local.bak\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ gbr\n* JY-20725-handle-HS-search-rate-limit\n master\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\n JY-20160\n JY-20145-filter-out-converted-leads-when-matching\n JY-20150-skip-push-summary-on-summary-ready-if-autolog\n JY-20132-fix-note-encoding\n JY-19792-clean-logs\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ dev\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\n\n Illuminate\\Database\\QueryException \n\n SQLSTATE[42S22]: Column not found: 1054 Unknown column 'team_id' in 'WHERE' (Connection: mysql, Host: mariadb, Port: 3306, Database: jiminny, SQL: select * from `activities` where `team_id` = 2 and `activities`.`deleted_at` is null order by `id` desc limit 100)\n\n at vendor/laravel/framework/src/Illuminate/Database/Connection.php:838\n 834▕ $exceptionType = $this->isUniqueConstraintError($e)\n 835▕ ? UniqueConstraintViolationException::class\n 836▕ : QueryException::class;\n 837▕ \n ➜ 838▕ throw new $exceptionType(\n 839▕ $this->getNameWithReadWriteType(),\n 840▕ $query,\n 841▕ $this->prepareBindings($bindings),\n 842▕ $e,\n\n +11 vendor frames \n\n 12 app/Console/Commands/JiminnyDebugCommand.php:380\n Illuminate\\Database\\Eloquent\\Builder::get()\n\n 13 app/Console/Commands/JiminnyDebugCommand.php:49\n Jiminny\\Console\\Commands\\JiminnyDebugCommand::simulateMatchActivityStorm()\n\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 10.01ms DONE\n cache ............................................................................................................................... 38.00ms DONE\n compiled ............................................................................................................................. 1.78ms DONE\n events ............................................................................................................................... 1.13ms DONE\n routes ............................................................................................................................... 1.56ms DONE\n views ................................................................................................................................ 3.25ms DONE\n\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nDispatching 100 MatchActivityCrmData jobs (portal=2)\nDone. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nDispatching 100 MatchActivityCrmData jobs (portal=2)\nDone. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config ............................................................................................................................... 6.34ms DONE\n cache ............................................................................................................................... 11.98ms DONE\n compiled ............................................................................................................................. 2.10ms DONE\n events ............................................................................................................................... 5.31ms DONE\n routes ............................................................................................................................... 2.90ms DONE\n views ............................................................................................................................... 13.11ms DONE\n\nworker-crm-update:worker-crm-update_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 10.53ms DONE\n cache .............................................................................................................................. 128.25ms DONE\n compiled ............................................................................................................................. 1.73ms DONE\n events ............................................................................................................................... 1.07ms DONE\n routes ............................................................................................................................... 1.45ms DONE\n views ................................................................................................................................ 5.46ms DONE\n\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-es-update:worker-es-update_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nDispatching 100 MatchActivityCrmData jobs (portal=2)\nDone. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nDispatching 100 MatchActivityCrmData jobs (portal=2)\nDone. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 69.57ms DONE\n cache .............................................................................................................................. 285.32ms DONE\n compiled ............................................................................................................................ 13.02ms DONE\n events .............................................................................................................................. 11.48ms DONE\n routes ............................................................................................................................... 6.30ms DONE\n views ............................................................................................................................... 51.86ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-audio:worker-audio_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nDispatching 100 MatchActivityCrmData jobs (portal=2)\nDone. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 59.22ms DONE\n cache ............................................................................................................................... 97.76ms DONE\n compiled ............................................................................................................................. 2.63ms DONE\n events ............................................................................................................................... 4.67ms DONE\n routes .............................................................................................................................. 11.57ms DONE\n views ............................................................................................................................... 18.54ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-emails:worker-emails_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny#","depth":4,"on_screen":true,"value":"worker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nSyncing opportunity 0\nSyncing opportunity 25\nSyncing opportunity 50\nSyncing opportunity 75\nSyncing opportunity 100\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nSyncing opportunity 0\nSyncing opportunity 25\nSyncing opportunity 50\nSyncing opportunity 75\nSyncing opportunity 100\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nSyncing opportunity 0\n\n HubSpot\\Client\\Crm\\Deals\\ApiException \n\n [429] Client error: `GET https://api.hubapi.com/crm/v3/objects/deals/374720564?properties=hs_object_id%2Cdealname&associations=companies%2Ccontacts&archived=0` resulted in a `429 Too Many Requests` response:\n{\"status\":\"error\",\"message\":\"You have reached your ten_secondly_rolling limit.\",\"errorType\":\"RATE_LIMIT\",\"correlationId\" (truncated...)\n\n at vendor/hubspot/api-client/codegen/Crm/Deals/Api/BasicApi.php:704\n 700▕ $options = $this->createHttpClientOption();\n 701▕ try {\n 702▕ $response = $this->client->send($request, $options);\n 703▕ } catch (RequestException $e) {\n ➜ 704▕ throw new ApiException(\n 705▕ \"[{$e->getCode()}] {$e->getMessage()}\",\n 706▕ (int) $e->getCode(),\n 707▕ $e->getResponse() ? $e->getResponse()->getHeaders() : null,\n 708▕ $e->getResponse() ? (string) $e->getResponse()->getBody() : null\n\n +1 vendor frames \n\n 2 app/Services/Crm/Hubspot/Client.php:212\n HubSpot\\Client\\Crm\\Deals\\Api\\BasicApi::getById(\"374720564\", \"hs_object_id,dealname\", \"companies,contacts\")\n\n 3 app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php:130\n Jiminny\\Services\\Crm\\Hubspot\\Client::getOpportunityById(\"374720564\")\n\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 10.49ms DONE\n cache ............................................................................................................................... 21.31ms DONE\n compiled ............................................................................................................................. 3.11ms DONE\n events ............................................................................................................................... 5.05ms DONE\n routes ............................................................................................................................... 1.83ms DONE\n views ................................................................................................................................ 4.91ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker:worker_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 37.77ms DONE\n cache ............................................................................................................................... 58.83ms DONE\n compiled ............................................................................................................................. 9.93ms DONE\n events .............................................................................................................................. 12.23ms DONE\n routes ............................................................................................................................... 5.02ms DONE\n views ............................................................................................................................... 21.46ms DONE\n\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-download:worker-download_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker:worker_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config ............................................................................................................................... 6.01ms DONE\n cache ............................................................................................................................... 16.11ms DONE\n compiled ............................................................................................................................. 2.91ms DONE\n events ............................................................................................................................... 2.27ms DONE\n routes ............................................................................................................................... 3.11ms DONE\n views ............................................................................................................................... 18.41ms DONE\n\nworker-crm-update:worker-crm-update_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\n\n SevenShores\\Hubspot\\Exceptions\\BadRequest \n\n 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\":\"019e0284-5 (truncated...)\n\n at vendor/hubspot/hubspot-php/src/Exceptions/HubspotException.php:24\n 20▕ }\n 21▕ \n 22▕ public static function create(RequestException $guzzleException): self\n 23▕ {\n ➜ 24▕ $e = new static(\n 25▕ static::sanitizeResponseMessage($guzzleException->getMessage()),\n 26▕ $guzzleException->getCode(),\n 27▕ $guzzleException\n 28▕ );\n\n +13 vendor frames \n\n 14 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:163\n SevenShores\\Hubspot\\Http\\Client::request(\"POST\", \"https://api.hubapi.com/crm/v3/objects/contact/search\", [])\n\n 15 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:51\n Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::executeSearchRequest(Object(Jiminny\\Services\\Crm\\Hubspot\\Client), \"https://api.hubapi.com/crm/v3/objects/contact/search\", [], Object(Jiminny\\Services\\Crm\\Hubspot\\Pagination\\PaginationState))\n\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 55.84ms DONE\n cache .............................................................................................................................. 108.68ms DONE\n compiled ............................................................................................................................ 22.07ms DONE\n events .............................................................................................................................. 25.86ms DONE\n routes .............................................................................................................................. 19.91ms DONE\n views ............................................................................................................................... 52.25ms DONE\n\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\n\n TypeError \n\n Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::getPaginatedDataGenerator(): Return value must be of type Generator, none returned\n\n at app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:83\n 79▕ \n 80▕ // Update reference parameters\n 81▕ $total = $state->total;\n 82▕ $lastRecordId = $state->lastRecordId;\n ➜ 83▕ }\n 84▕ \n 85▕ private function shouldStopPagination(PaginationState $state, int $teamId): bool\n 86▕ {\n 87▕ if ($state->hasReachedSafetyLimit()) {\n\n 1 app/Services/Crm/Hubspot/Client.php:195\n Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::getPaginatedDataGenerator(Object(Jiminny\\Services\\Crm\\Hubspot\\Client), [], \"contact\")\n\n 2 app/Services/Crm/Hubspot/Client.php:176\n Jiminny\\Services\\Crm\\Hubspot\\Client::getPaginatedDataGenerator([], \"contact\")\n\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 14.73ms DONE\n cache ............................................................................................................................... 19.13ms DONE\n compiled ............................................................................................................................. 4.93ms DONE\n events ............................................................................................................................... 3.02ms DONE\n routes ............................................................................................................................... 5.55ms DONE\n views ................................................................................................................................ 6.02ms DONE\n\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-conferences:worker-conferences_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\n\n Jiminny\\Exceptions\\RateLimitException \n\n Hubspot returned 429\n\n at app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:206\n 202▕ 'retry_after' => $retryAfter,\n 203▕ 'reason' => $e->getMessage(),\n 204▕ ]);\n 205▕ \n ➜ 206▕ throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);\n 207▕ } else {\n 208▕ throw $e;\n 209▕ }\n 210▕ }\n\n +14 vendor frames \n\n 15 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:166\n SevenShores\\Hubspot\\Http\\Client::request(\"POST\", \"https://api.hubapi.com/crm/v3/objects/contact/search\", [])\n\n 16 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:52\n Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::executeSearchRequest(Object(Jiminny\\Services\\Crm\\Hubspot\\Client), \"https://api.hubapi.com/crm/v3/objects/contact/search\", [], Object(Jiminny\\Services\\Crm\\Hubspot\\Pagination\\PaginationState))\n\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config ............................................................................................................................... 4.47ms DONE\n cache ............................................................................................................................... 16.66ms DONE\n compiled ............................................................................................................................. 3.26ms DONE\n events ............................................................................................................................... 3.99ms DONE\n routes ............................................................................................................................... 3.85ms DONE\n views ................................................................................................................................ 4.93ms DONE\n\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 14.42ms DONE\n cache ............................................................................................................................... 23.70ms DONE\n compiled ............................................................................................................................. 3.46ms DONE\n events ............................................................................................................................... 4.30ms DONE\n routes ............................................................................................................................... 8.35ms DONE\n views ................................................................................................................................ 8.00ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nMatching contact 3\nMatching contact 4\nMatching contact 5\nMatching contact 6\nMatching contact 7\nMatching contact 8\nMatching contact 9\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\n\n Jiminny\\Exceptions\\RateLimitException \n\n Hubspot returned 429\n\n at app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:206\n 202▕ 'retry_after' => $retryAfter,\n 203▕ 'reason' => $e->getMessage(),\n 204▕ ]);\n 205▕ \n ➜ 206▕ throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);\n 207▕ } else {\n 208▕ throw $e;\n 209▕ }\n 210▕ }\n\n +14 vendor frames \n\n 15 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:166\n SevenShores\\Hubspot\\Http\\Client::request(\"POST\", \"https://api.hubapi.com/crm/v3/objects/contact/search\", [])\n\n 16 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:52\n Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::executeSearchRequest(Object(Jiminny\\Services\\Crm\\Hubspot\\Client), \"https://api.hubapi.com/crm/v3/objects/contact/search\", [], Object(Jiminny\\Services\\Crm\\Hubspot\\Pagination\\PaginationState))\n\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config ............................................................................................................................... 6.77ms DONE\n cache ............................................................................................................................... 25.55ms DONE\n compiled ............................................................................................................................. 3.87ms DONE\n events ............................................................................................................................... 4.96ms DONE\n routes ............................................................................................................................... 2.23ms DONE\n views ................................................................................................................................ 7.50ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-conferences:worker-conferences_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nMatching contact 0\nMatching contact 1\nMatching contact 2\nroot@docker_lamp_1:/home/jiminny# \nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug 007d5da3af66\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ dev\nroot@docker_lamp_1:/home/jiminny# \nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug 007d5da3af66\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch JY-20725-handle-HS-search-rate-limit\nChanges to be committed:\n (use \"git restore --staged <file>...\" to unstage)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tnew file: app/Jobs/Middleware/HandleHubspotRateLimit.php\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Exceptions/RateLimitException.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Jobs/Activity/Import/MatchCrmData.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Jobs/Crm/MatchActivityCrmData.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Crm/Hubspot/Client.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Crm/Hubspot/HubspotClientInterface.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Crm/Hubspot/Pagination/PaginationState.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Crm/Hubspot/Service.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local.bak\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ gbr\n* JY-20725-handle-HS-search-rate-limit\n master\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\n JY-20160\n JY-20145-filter-out-converted-leads-when-matching\n JY-20150-skip-push-summary-on-summary-ready-if-autolog\n JY-20132-fix-note-encoding\n JY-19792-clean-logs\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ dev\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\n\n Illuminate\\Database\\QueryException \n\n SQLSTATE[42S22]: Column not found: 1054 Unknown column 'team_id' in 'WHERE' (Connection: mysql, Host: mariadb, Port: 3306, Database: jiminny, SQL: select * from `activities` where `team_id` = 2 and `activities`.`deleted_at` is null order by `id` desc limit 100)\n\n at vendor/laravel/framework/src/Illuminate/Database/Connection.php:838\n 834▕ $exceptionType = $this->isUniqueConstraintError($e)\n 835▕ ? UniqueConstraintViolationException::class\n 836▕ : QueryException::class;\n 837▕ \n ➜ 838▕ throw new $exceptionType(\n 839▕ $this->getNameWithReadWriteType(),\n 840▕ $query,\n 841▕ $this->prepareBindings($bindings),\n 842▕ $e,\n\n +11 vendor frames \n\n 12 app/Console/Commands/JiminnyDebugCommand.php:380\n Illuminate\\Database\\Eloquent\\Builder::get()\n\n 13 app/Console/Commands/JiminnyDebugCommand.php:49\n Jiminny\\Console\\Commands\\JiminnyDebugCommand::simulateMatchActivityStorm()\n\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 10.01ms DONE\n cache ............................................................................................................................... 38.00ms DONE\n compiled ............................................................................................................................. 1.78ms DONE\n events ............................................................................................................................... 1.13ms DONE\n routes ............................................................................................................................... 1.56ms DONE\n views ................................................................................................................................ 3.25ms DONE\n\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nDispatching 100 MatchActivityCrmData jobs (portal=2)\nDone. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nDispatching 100 MatchActivityCrmData jobs (portal=2)\nDone. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config ............................................................................................................................... 6.34ms DONE\n cache ............................................................................................................................... 11.98ms DONE\n compiled ............................................................................................................................. 2.10ms DONE\n events ............................................................................................................................... 5.31ms DONE\n routes ............................................................................................................................... 2.90ms DONE\n views ............................................................................................................................... 13.11ms DONE\n\nworker-crm-update:worker-crm-update_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 10.53ms DONE\n cache .............................................................................................................................. 128.25ms DONE\n compiled ............................................................................................................................. 1.73ms DONE\n events ............................................................................................................................... 1.07ms DONE\n routes ............................................................................................................................... 1.45ms DONE\n views ................................................................................................................................ 5.46ms DONE\n\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-es-update:worker-es-update_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nDispatching 100 MatchActivityCrmData jobs (portal=2)\nDone. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nDispatching 100 MatchActivityCrmData jobs (portal=2)\nDone. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 69.57ms DONE\n cache .............................................................................................................................. 285.32ms DONE\n compiled ............................................................................................................................ 13.02ms DONE\n events .............................................................................................................................. 11.48ms DONE\n routes ............................................................................................................................... 6.30ms DONE\n views ............................................................................................................................... 51.86ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-audio:worker-audio_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debug\nDispatching 100 MatchActivityCrmData jobs (portal=2)\nDone. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.\nroot@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all\n\n INFO Clearing cached bootstrap files. \n\n config .............................................................................................................................. 59.22ms DONE\n cache ............................................................................................................................... 97.76ms DONE\n compiled ............................................................................................................................. 2.63ms DONE\n events ............................................................................................................................... 4.67ms DONE\n routes .............................................................................................................................. 11.57ms DONE\n views ............................................................................................................................... 18.54ms DONE\n\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-emails:worker-emails_00: stopped\nworker:worker_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-conferences:worker-conferences_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.06732048,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.33759972,"top":1.0,"width":0.06732048,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33959442,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.40492022,"top":1.0,"width":0.06732048,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4069149,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.4722407,"top":1.0,"width":0.06732048,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4742354,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.53956115,"top":1.0,"width":0.06715426,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5415558,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.60671544,"top":1.0,"width":0.06715426,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6087101,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.67386967,"top":1.0,"width":0.06715426,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.67586434,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7273936,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49468085,"top":1.0,"width":0.029920213,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
-5063400118493784605
|
4435031406530046724
|
click
|
accessibility
|
NULL
|
worker-conferences:worker-conferences_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Syncing opportunity 0
Syncing opportunity 25
Syncing opportunity 50
Syncing opportunity 75
Syncing opportunity 100
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Syncing opportunity 0
Syncing opportunity 25
Syncing opportunity 50
Syncing opportunity 75
Syncing opportunity 100
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Syncing opportunity 0
HubSpot\Client\Crm\Deals\ApiException
[429] Client error: `GET [URL_WITH_CREDENTIALS] php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 10.49ms DONE
cache [PASSWORD_DOTS] 21.31ms DONE
compiled [PASSWORD_DOTS] 3.11ms DONE
events [PASSWORD_DOTS] 5.05ms DONE
routes [PASSWORD_DOTS] 1.83ms DONE
views [PASSWORD_DOTS] 4.91ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
worker:worker_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
artisan-schedule:artisan-schedule_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 37.77ms DONE
cache [PASSWORD_DOTS] 58.83ms DONE
compiled [PASSWORD_DOTS] 9.93ms DONE
events [PASSWORD_DOTS] 12.23ms DONE
routes [PASSWORD_DOTS] 5.02ms DONE
views [PASSWORD_DOTS] 21.46ms DONE
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-download:worker-download_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker:worker_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 6.01ms DONE
cache [PASSWORD_DOTS] 16.11ms DONE
compiled [PASSWORD_DOTS] 2.91ms DONE
events [PASSWORD_DOTS] 2.27ms DONE
routes [PASSWORD_DOTS] 3.11ms DONE
views [PASSWORD_DOTS] 18.41ms DONE
worker-crm-update:worker-crm-update_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
SevenShores\Hubspot\Exceptions\BadRequest
Client error: `POST [URL_WITH_CREDENTIALS] php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 55.84ms DONE
cache [PASSWORD_DOTS] 108.68ms DONE
compiled [PASSWORD_DOTS] 22.07ms DONE
events [PASSWORD_DOTS] 25.86ms DONE
routes [PASSWORD_DOTS] 19.91ms DONE
views [PASSWORD_DOTS] 52.25ms DONE
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
artisan-schedule:artisan-schedule_00: stopped
worker-audio:worker-audio_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
TypeError
Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService::getPaginatedDataGenerator(): Return value must be of type Generator, none returned
at app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:83
79▕
80▕ // Update reference parameters
81▕ $total = $state->total;
82▕ $lastRecordId = $state->lastRecordId;
➜ 83▕ }
84▕
85▕ private function shouldStopPagination(PaginationState $state, int $teamId): bool
86▕ {
87▕ if ($state->hasReachedSafetyLimit()) {
1 app/Services/Crm/Hubspot/Client.php:195
Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService::getPaginatedDataGenerator(Object(Jiminny\Services\Crm\Hubspot\Client), [], "contact")
2 app/Services/Crm/Hubspot/Client.php:176
Jiminny\Services\Crm\Hubspot\Client::getPaginatedDataGenerator([], "contact")
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 14.73ms DONE
cache [PASSWORD_DOTS] 19.13ms DONE
compiled [PASSWORD_DOTS] 4.93ms DONE
events [PASSWORD_DOTS] 3.02ms DONE
routes [PASSWORD_DOTS] 5.55ms DONE
views [PASSWORD_DOTS] 6.02ms DONE
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-conferences:worker-conferences_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Jiminny\Exceptions\RateLimitException
Hubspot returned 429
at app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:206
202▕ 'retry_after' => $retryAfter,
203▕ 'reason' => $e->getMessage(),
204▕ ]);
205▕
➜ 206▕ throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
207▕ } else {
208▕ throw $e;
209▕ }
210▕ }
+14 vendor frames
15 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:166
SevenShores\Hubspot\Http\Client::request("POST", "[URL_WITH_CREDENTIALS] php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 4.47ms DONE
cache [PASSWORD_DOTS] 16.66ms DONE
compiled [PASSWORD_DOTS] 3.26ms DONE
events [PASSWORD_DOTS] 3.99ms DONE
routes [PASSWORD_DOTS] 3.85ms DONE
views [PASSWORD_DOTS] 4.93ms DONE
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 14.42ms DONE
cache [PASSWORD_DOTS] 23.70ms DONE
compiled [PASSWORD_DOTS] 3.46ms DONE
events [PASSWORD_DOTS] 4.30ms DONE
routes [PASSWORD_DOTS] 8.35ms DONE
views [PASSWORD_DOTS] 8.00ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-crm-update:worker-crm-update_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
Matching contact 3
Matching contact 4
Matching contact 5
Matching contact 6
Matching contact 7
Matching contact 8
Matching contact 9
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Jiminny\Exceptions\RateLimitException
Hubspot returned 429
at app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:206
202▕ 'retry_after' => $retryAfter,
203▕ 'reason' => $e->getMessage(),
204▕ ]);
205▕
➜ 206▕ throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
207▕ } else {
208▕ throw $e;
209▕ }
210▕ }
+14 vendor frames
15 app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:166
SevenShores\Hubspot\Http\Client::request("POST", "[URL_WITH_CREDENTIALS] php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 6.77ms DONE
cache [PASSWORD_DOTS] 25.55ms DONE
compiled [PASSWORD_DOTS] 3.87ms DONE
events [PASSWORD_DOTS] 4.96ms DONE
routes [PASSWORD_DOTS] 2.23ms DONE
views [PASSWORD_DOTS] 7.50ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
worker-conferences:worker-conferences_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Matching contact 0
Matching contact 1
Matching contact 2
root@docker_lamp_1:/home/jiminny#
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug 007d5da3af66
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch JY-20725-handle-HS-search-rate-limit
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: app/Jobs/Middleware/HandleHubspotRateLimit.php
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/Exceptions/RateLimitException.php
modified: app/Jobs/Activity/Import/MatchCrmData.php
modified: app/Jobs/Crm/MatchActivityCrmData.php
modified: app/Services/Crm/Hubspot/Client.php
modified: app/Services/Crm/Hubspot/HubspotClientInterface.php
modified: app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
modified: app/Services/Crm/Hubspot/Pagination/PaginationState.php
modified: app/Services/Crm/Hubspot/Service.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.local.bak
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Policies/CanAccessAiReportsTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ gbr
* JY-20725-handle-HS-search-rate-limit
master
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
JY-20160
JY-20145-filter-out-converted-leads-when-matching
JY-20150-skip-push-summary-on-summary-ready-if-autolog
JY-20132-fix-note-encoding
JY-19792-clean-logs
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ dev
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Illuminate\Database\QueryException
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'team_id' in 'WHERE' (Connection: mysql, Host: mariadb, Port: 3306, Database: jiminny, SQL: select * from `activities` where `team_id` = 2 and `activities`.`deleted_at` is null order by `id` desc limit 100)
at vendor/laravel/framework/src/Illuminate/Database/Connection.php:838
834▕ $exceptionType = $this->isUniqueConstraintError($e)
835▕ ? UniqueConstraintViolationException::class
836▕ : QueryException::class;
837▕
➜ 838▕ throw new $exceptionType(
839▕ $this->getNameWithReadWriteType(),
840▕ $query,
841▕ $this->prepareBindings($bindings),
842▕ $e,
+11 vendor frames
12 app/Console/Commands/JiminnyDebugCommand.php:380
Illuminate\Database\Eloquent\Builder::get()
13 app/Console/Commands/JiminnyDebugCommand.php:49
Jiminny\Console\Commands\JiminnyDebugCommand::simulateMatchActivityStorm()
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 10.01ms DONE
cache [PASSWORD_DOTS] 38.00ms DONE
compiled [PASSWORD_DOTS] 1.78ms DONE
events [PASSWORD_DOTS] 1.13ms DONE
routes [PASSWORD_DOTS] 1.56ms DONE
views [PASSWORD_DOTS] 3.25ms DONE
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-audio:worker-audio_00: stopped
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
artisan-schedule:artisan-schedule_00: stopped
worker-es-update:worker-es-update_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Dispatching 100 MatchActivityCrmData jobs (portal=2)
Done. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Dispatching 100 MatchActivityCrmData jobs (portal=2)
Done. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 6.34ms DONE
cache [PASSWORD_DOTS] 11.98ms DONE
compiled [PASSWORD_DOTS] 2.10ms DONE
events [PASSWORD_DOTS] 5.31ms DONE
routes [PASSWORD_DOTS] 2.90ms DONE
views [PASSWORD_DOTS] 13.11ms DONE
worker-crm-update:worker-crm-update_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-emails:worker-emails_00: stopped
worker-es-update:worker-es-update_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 10.53ms DONE
cache [PASSWORD_DOTS] 128.25ms DONE
compiled [PASSWORD_DOTS] 1.73ms DONE
events [PASSWORD_DOTS] 1.07ms DONE
routes [PASSWORD_DOTS] 1.45ms DONE
views [PASSWORD_DOTS] 5.46ms DONE
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-emails:worker-emails_00: stopped
worker-nudges:worker-nudges_00: stopped
worker:worker_00: stopped
worker-audio:worker-audio_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
artisan-schedule:artisan-schedule_00: stopped
worker-es-update:worker-es-update_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-sync_00: started
worker-crm-update:worker-crm-update_00: started
worker-download:worker-download_00: started
worker-emails:worker-emails_00: started
worker-es-update:worker-es-update_00: started
worker-nudges:worker-nudges_00: started
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Dispatching 100 MatchActivityCrmData jobs (portal=2)
Done. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Dispatching 100 MatchActivityCrmData jobs (portal=2)
Done. Watch logs and run jiminny:debug observeRateLimit to inspect cache state.
root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart all
INFO Clearing cached bootstrap files.
config [PASSWORD_DOTS] 69.57ms DONE
cache [PASSWORD_DOTS] 285.32ms DONE
compiled [PASSWORD_DOTS] 13.02ms DONE
events [PASSWORD_DOTS] 11.48ms DONE
routes [PASSWORD_DOTS] 6.30ms DONE
views [PASSWORD_DOTS] 51.86ms DONE
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped
jiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped
jiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped
jiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped
jiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped
worker-analytics:worker-analytics_00: stopped
worker-crm-update:worker-crm-update_00: stopped
worker-download:worker-download_00: stopped
worker-nudges:worker-nudges_00: stopped
jiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped
worker:worker_00: stopped
worker-calendar:worker-calendar_00: stopped
worker-conferences:worker-conferences_00: stopped
worker-crm-sync:worker-crm-sync_00: stopped
worker-es-update:worker-es-update_00: stopped
worker-emails:worker-emails_00: stopped
worker-audio:worker-audio_00: stopped
artisan-schedule:artisan-schedule_00: stopped
artisan-schedule:artisan-schedule_00: started
jiminny-worker-processing-1:jiminny-worker-processing-1_00: started
jiminny-worker-processing-2:jiminny-worker-processing-2_00: started
jiminny-worker-processing-3:jiminny-worker-processing-3_00: started
jiminny-worker-processing-4:jiminny-worker-processing-4_00: started
jiminny-worker-processing-5:jiminny-worker-processing-5_00: started
jiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started
worker:worker_00: started
worker-analytics:worker-analytics_00: started
worker-audio:worker-audio_00: started
worker-calendar:worker-calendar_00: started
worker-conferences:worker-conferences_00: started
worker-crm-sync:worker-crm-syn...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18288
|
792
|
0
|
2026-05-11T11:08:36.957794+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497716957_m1.jpg...
|
Notion Calendar
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
•iTerm2ShellEditViewSessionScriptsProfilesWindowHe •iTerm2ShellEditViewSessionScriptsProfilesWindowHelp, 0lhl# Preparation for Refi... in 52m100% CDEV (docker)-zshDOCKERO ₴1DEV (docker)APP (-zsh)#3configcachecompiledeventsroutesviewsjiminny-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: 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#848• Mon 11 May 14:08:36T&1-zsh*7-zsh*5screenpipe"O ₴65.16ms DONE27.20ms DONE2.01ms DONE1.32ms DONE1.13ms DONE15.28ms DONEDEV...
|
NULL
|
7296481070396034487
|
NULL
|
click
|
ocr
|
NULL
|
•iTerm2ShellEditViewSessionScriptsProfilesWindowHe •iTerm2ShellEditViewSessionScriptsProfilesWindowHelp, 0lhl# Preparation for Refi... in 52m100% CDEV (docker)-zshDOCKERO ₴1DEV (docker)APP (-zsh)#3configcachecompiledeventsroutesviewsjiminny-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: 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#848• Mon 11 May 14:08:36T&1-zsh*7-zsh*5screenpipe"O ₴65.16ms DONE27.20ms DONE2.01ms DONE1.32ms DONE1.13ms DONE15.28ms DONEDEV...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18289
|
793
|
0
|
2026-05-11T11:08:36.963608+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497716963_m2.jpg...
|
Notion Calendar
|
NULL
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Proiect vT SyncCrmEntitiesTrait.php(C) CachedCrmSe Proiect vT SyncCrmEntitiesTrait.php(C) CachedCrmServiceDecor:IMMakerle0 package-lock.json= ohostan.neon.distE phpstan-baseline.neon<> phounit.xmliT6 raw_sql_query.sqMLRSADMS mo©) HandleHubs© RateLimitException.php© PaginationConfia.phdclass JiminnyDebuqcommand extends commat sonar-project.properties361= test.py<> Untitled Diagram.xmlus vetur.config.jsM+ WEBHOOK_FILTERING_IMPLEM 365> (h External Librariesv =0 Scratches and Consolesv @ Database Consoles368V AEUA console [EU]A DEAL RISKS [EU]&DI LUIALu Lu& iminny@localhostconsole liminnvalocalhoDlminnvolocalhostl4 HS_ocal liminnv@localnc 376A SF [iiminny@localhostlA zoho dev liminnv@localh 378V APRONServicacv M Datahacc• ДEU# consolev & liminny@localnostA HS local 1 s 665 msASFV APRODA consoloASTAGING« console Dockerprivate function natelamutfor (Si = 0 ; $i < 3; $i++) {if ($i % 25 === 0) {scnis"pinto syncingSthis->info( string: "Matcscrmservice->macchbyName"kSteam = Team::find(steamid):Sconfio = steam->determconfiaunSactivities = Activitv::quervo"id")Outputfiß Result 2 x(0 W 4 rows -Muser_id YMemail Yiames.arahamdiimnikolay.nikolov@7148 (ownen)lukas.kovalik@jihoren.k1razvand• SearchYour team is now on the Free olan with 1 admin. You retain editina access and other members are read-onlv. View team nermissions to see who can edit or unarade to restore collaborationRun orderRun SequenceGET Read Copyv COLLECtIONSs9: An error occurrea› CRM Owners• CRM Pipelines› Dealsengagements>D OLD ENGAGEMENTSGet list meetingsrosl search tasksGET read callGeT list callsrost meeuings scheculedGET det meetinorost det link to task• PoST Create Contact with Association› Hubspotv teration run HSV GET Read Copyeg. An error occurred.ss. successful operationv teration run Search HSrost search contact oy emall copy> Journal & webhoooks v4› OAuth› Properties• DECCADOLSEARCHpost coarch cantant hu nhanoPOST search contact by emailPOST search meetingsPOST search notes> post Search calle v2POST Search related meetinas v3POST search deals› © Critical System Resource Limits been stopped to prevent systenSustem Resource WarningSustem resources are constrained. Thesystem may not be able to generate the loadeded for this test and the cest is likely toa Connect GitConcole 5.) TerminaDeselect AllGET https:/lapi.hubapi.comSelect All ResetPosT search contact by email CopyPreoaration tor kell... In o4m• мon 11 May 14:00.30Uparade0 Iteration run Search HSPOSt search contact by emaiD RunnerNo environmentvFunctional PerformanceChoose how to run vour pertormance test• In the appVia the elSet up vour performance testLoad profile GVirtual users ©Test durationFixed20 virtual users run for 1 minute, each executing all requests sequentiallvData file GSelect file>Pass test if... ©Globals Vault Tools?000...
|
NULL
|
5963837189170506834
|
NULL
|
click
|
ocr
|
NULL
|
Proiect vT SyncCrmEntitiesTrait.php(C) CachedCrmSe Proiect vT SyncCrmEntitiesTrait.php(C) CachedCrmServiceDecor:IMMakerle0 package-lock.json= ohostan.neon.distE phpstan-baseline.neon<> phounit.xmliT6 raw_sql_query.sqMLRSADMS mo©) HandleHubs© RateLimitException.php© PaginationConfia.phdclass JiminnyDebuqcommand extends commat sonar-project.properties361= test.py<> Untitled Diagram.xmlus vetur.config.jsM+ WEBHOOK_FILTERING_IMPLEM 365> (h External Librariesv =0 Scratches and Consolesv @ Database Consoles368V AEUA console [EU]A DEAL RISKS [EU]&DI LUIALu Lu& iminny@localhostconsole liminnvalocalhoDlminnvolocalhostl4 HS_ocal liminnv@localnc 376A SF [iiminny@localhostlA zoho dev liminnv@localh 378V APRONServicacv M Datahacc• ДEU# consolev & liminny@localnostA HS local 1 s 665 msASFV APRODA consoloASTAGING« console Dockerprivate function natelamutfor (Si = 0 ; $i < 3; $i++) {if ($i % 25 === 0) {scnis"pinto syncingSthis->info( string: "Matcscrmservice->macchbyName"kSteam = Team::find(steamid):Sconfio = steam->determconfiaunSactivities = Activitv::quervo"id")Outputfiß Result 2 x(0 W 4 rows -Muser_id YMemail Yiames.arahamdiimnikolay.nikolov@7148 (ownen)lukas.kovalik@jihoren.k1razvand• SearchYour team is now on the Free olan with 1 admin. You retain editina access and other members are read-onlv. View team nermissions to see who can edit or unarade to restore collaborationRun orderRun SequenceGET Read Copyv COLLECtIONSs9: An error occurrea› CRM Owners• CRM Pipelines› Dealsengagements>D OLD ENGAGEMENTSGet list meetingsrosl search tasksGET read callGeT list callsrost meeuings scheculedGET det meetinorost det link to task• PoST Create Contact with Association› Hubspotv teration run HSV GET Read Copyeg. An error occurred.ss. successful operationv teration run Search HSrost search contact oy emall copy> Journal & webhoooks v4› OAuth› Properties• DECCADOLSEARCHpost coarch cantant hu nhanoPOST search contact by emailPOST search meetingsPOST search notes> post Search calle v2POST Search related meetinas v3POST search deals› © Critical System Resource Limits been stopped to prevent systenSustem Resource WarningSustem resources are constrained. Thesystem may not be able to generate the loadeded for this test and the cest is likely toa Connect GitConcole 5.) TerminaDeselect AllGET https:/lapi.hubapi.comSelect All ResetPosT search contact by email CopyPreoaration tor kell... In o4m• мon 11 May 14:00.30Uparade0 Iteration run Search HSPOSt search contact by emaiD RunnerNo environmentvFunctional PerformanceChoose how to run vour pertormance test• In the appVia the elSet up vour performance testLoad profile GVirtual users ©Test durationFixed20 virtual users run for 1 minute, each executing all requests sequentiallvData file GSelect file>Pass test if... ©Globals Vault Tools?000...
|
18287
|
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
|
True
|
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
|
True
|
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
|
True
|
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
|
True
|
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
|
|
18451
|
NULL
|
0
|
2026-05-11T11:18:20.526624+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498300526_m2.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormProiectVIewINavicarecodeFV faVsco.js°9 JY- PhostormProiectVIewINavicarecodeFV faVsco.js°9 JY-20725-handle-HS-search-rate-lin=laravel.log X 4 SF (jiminny@localhost]4 HS_local [jiminny@localhost]« console [PROD]•.gitignoree audio.wav© PlaybackController.php© CachedCrmServiceDecorator.phpA console [STAGING]= nuospot-lournal-poll.log= laravel.log< phpunit.xmis ttt.isE oauth-private.keyE oauth-public.kev= storageE supervisord.pidtext-relav.isontestsFeatureM Intearation• m Servicesv 7UnitActionsm ComnonentM ConficurationConsoleContractsD DomainMntoD EnumsD EventsD ExceptionsRemoteMatch.onp)MatchactivityermData.pnp© Job.php© PaginationState.phpC) MatchCrmData.phpC) CrmObiectsResolver.pho© ProviderRateLimiter.php(C) PaqinationContia.phpclass Cuient extends BasecLient imolements HubspotcuientinterfaceA2 A67 ×3 ^ v 53612153453%538₴126127128129131133135137© EmailActivityImportExc139C HandlerT est.php© RateLimitExceptionTes1410 fixturesa GuardsC HelpersahiteIntearationsa InteractionsM.Jobs147148> ActivitvM AiAutomation>M Audiol• M AutomatedRenorts150151152C CreateResultsTest.1531C) RequestGenerateA.C) RequestGenerateR,© SendReportExpiring© SendReportJobTes@& SendReportMailJobe CondDonartNatGon159|MelondarMemmTacts naccod. 12 (todav 12:02public function isHubspotRateLimit(Throwable Se): boolse inscanceotGuzzLehcco cxcepcion kequesctxcepclonrecurn (1nu se->geclode === 427*nublic function narseRetrvAfter(Throwable Se): intif method exists(Se.'aetResoonseHeaders'))Sheaders = Se->aetResoonseHeadersor2.$value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;if Gs arrav(Svalue)) <11— 5411I11ISvalue = Svaluelol 22 null.if (is numeric(Svalue)) {return (int) Svalue;Smessage = strtolower(Se->getMessageO):if (str_contains($message,'daily')){=562if (str_ contains(Smessaqe.'ten secondly')) {return 10%if (str_contains(Smessaqe, 'secondly')) {return 1"Sthis->lo0->warnina('[Hubspotl No retry-after header or known message. using default'. ['excention class' => det class(Se)1 111neturn 10+1111x5CcW.*[2026-05-11 11:17:57] Local.INFO: [Prospect match] Cache / local search hit ("identifier_type":"€ -wsg.[2026-05-11 11:17:57] local.INF0: [CrmActivityService] CRM matching completed {"activity_id":612594,"participant[2026-05-11 11:17:57] local.INF0: [ EsUpdateTarget ] Update single target {"target":"activities","purpose": "seaf[2026-05-11 11:17:57] local.INF0: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activit[2026-05-11 11:17:57] local.INF0: [MatchActivityCrmData] Successfully matched CRM data {"activity":612594,"remot[2026-05-11 11:17:58]local.INF0: [MatchActivityCrmData] Starting CRM data matching {"activity":612593,"remote_s[2026-05-11 11:17:58] local.INF0:[ EsUpdateTarget ] Update single target {"target":"activities" "purpose":"sean[2026-05-11 11:17:58]Local.LNFU.[ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activit[2026-05-11 11:17:58] local.INF0:[MatchActivityCrmData] Participants old state {"activity":612593,"participants[2026-05-11 11:17:58]Local. Inru: Lsoczalaccountservaces retchang token t soczalaccountld 11499, provzder : hu.[2026-05-11 11:17:58] local.INF0:Soc1aLAccountservice Token recrieved "soc1aLACCOUncld":1474, "prov1der":"nUa12626-05-11 11417158Local.Inru.[2026-05-11 11:17:581 local. INF0:lencrvoredlokenmanager benerarina access roken. ""mode":"Leqacy"r ""correlar[CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider": "hubCrmActivitvServicel Emarl domann belonas to the team. skapping crm lookup "al2826-05-11 11:17:58 Local.INF0:[2026-05-11 11:17:58] local2826-05-11 11:17:5811[2026-05-11 11:17:58] local. INFO:2826-05-1111:17:5811CrmActivitvServicel CRM matchina completed "activity 1d":612593."participant12026-05-11 11:17:58J2026-05-11AsvncUodatezlasticSearch Entitv added to Redis uist <"entitvivoe":"activit[MatchActivityCrmData] Successfully matched CRM data {"activity":612593, "remotMatchActivitvermDatal Startino CRM data matchina "activitv":612592 "remote s[2026-05-112026-05-1111:17:58]Local. TNFO:EsUpdateTarget ] Update single target {"target":"activities","purpose":"sear11:17-581 local. TNEO:AsvncUndate=lasticSearch1 Entitv added to Redis List <"entitvivne"."activit11:17:581Local. TNEO.MatchActivitvCrmDatal Particinants old state "activity":612592 "narticinants11:17•5911Local. TNFO:[SocialAccountServicel Fetchina token "socialAccountId": 1499 "oroviden" • "hubs[2026-05-1111:17:59]local.INFO:Sacral Accoun+Cervicel Token netrieved "icocialAccountTd"• 1400 "nnovidenll•"huh12926-05-11 11•17•5911Jocal TASh•[EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlati[2026-05-11 11:17:59]Tocal TASO•[CrmOwnerResolver] Integration owner matched as CRM Owner {"erm_provider": "hub12026-05-11 11•17•591 local TAS0•Prosnect matchl Cache / local ceanch hit cuidentifien tvnel."email" "identifi[2026-05-11 11:17:59]local.INF0: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {"a12026-05-11 11•17•591 1ocal TAE0•[CrmActivityService] CRM matching completed {"activity_id":612592, "participant[2026-05-11 11:17:59]local.INF0: [ EsUpdateTarget ] Update single target {"target":"activities" "purpose":"sear112004-05-11 11.17•501 1oлa1 TACП•[ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activit[2026-05-11 11:17:59]local.INFO: [MatchActivityCrmData] Successfully matched CRM data {"activity":612592, "remot10004-05-11 11:17.591 Local.INFO:[MatchActivityCrmDatal Starting CRM data matching {"activity":612591,"remote s[2026-05-11 11:17:591local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities" "purpose". "sean[2026-05-11 11:17:591 local.INF0:[ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activit[2026-05-11 11:17:59] local.INF0: [MatchActivityCrmDatal Participants old state {"activity":612591,"participants[2026-05-11 11:18:001 local. INF0:[SocialAccountServicel Fetching token {"socialAccountId":1499 "provider". "hubs[2026-05-11 11:18:001 local.INF0: [SocialAccountServicel Token retrieved {"socialAccountId": 1499 "providen" . "hub[2026-05-11 11:18:001 local.INF0:[EncryptedTokenManager] Generating access token. {"mode". "legacv"} {"correlatiowner matched as CRM Owner {"crm_provider":"hub12826-05-11 11:18:001LOCaL,INFO[2026-05-11 11:18:001 local, INE0:2026-05-1111: 18:001|Local, INFO.[2026-05-11 11:18:001 localCache local search hit "identifier tvoe"."emai" "identifi2026-05-1111: 18:001|[2026-05-11 11:18:001 locallAsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activit12926-05-11111•18•001 Tocal. TAS0:MatchActivitvirmlatal Succeccfuliy matched CPM data diactivitvl:612501 Ilremot[MatchActivityCrmData] Starting CRM data matching l"activity":612590,"remote_s• Preparation tor Kell.. In 42 m100% 1• Mon 11 May 14:18:20HandleHubspotRateLimitTest v+0 ..lets simplify it, just call it parseMessage and skip policy al togetherHubspot Rate Limit ReThought for 5s ›Read Client.php #L86-200b Client.phpVerify nothing broke:Command docker, taili• docker exec docker_nampat php vendor/bon/phpunittests/Unit/J0bs/Middleware/HandleHubspotRatel/mitTest-phptests/Unit/Services/Crm/Hubspot/ClientTest.php --no-coverage 2>&1 | tail -10attateslmoePHP 8.3.30contiourat ion:nome1iminnyonounit.xml[PASSWORD_DOTS]DD..DD..D.D..DDDDD.DDD.......65 / 80 (1808)Time: 62:14.415. Memorv: 62.00 MBAll ou tests still passSummaryRemoved narsePo Eicv entirelv. narseRetrvAfter now mans messade kevwords direct v to seconds without theintermediate policy conceptBefore: header parsePolicy » policy constant → seconds After: header → parseMessage → seconds• parsePolicy → deleted•narseMessade added: returns the raw messade strina from the response bodv (or •)parseRetryAfter does the keyword matching itself (daily → 600, ten secondly → 10, secondly → 1)• Log line in executeRequest now logs message instead of policy - more informative for debuggingThe keyword-match order is the same as before (daily before ten secondly before secondly ) to avoid substringAsk anvthing (&4L)« CodeClaude Qnus 4.7 MediumWN Windsurf Toams 2-1UTF.8io 4 spaces...
|
NULL
|
1257270935941464114
|
NULL
|
visual_change
|
ocr
|
NULL
|
PhostormProiectVIewINavicarecodeFV faVsco.js°9 JY- PhostormProiectVIewINavicarecodeFV faVsco.js°9 JY-20725-handle-HS-search-rate-lin=laravel.log X 4 SF (jiminny@localhost]4 HS_local [jiminny@localhost]« console [PROD]•.gitignoree audio.wav© PlaybackController.php© CachedCrmServiceDecorator.phpA console [STAGING]= nuospot-lournal-poll.log= laravel.log< phpunit.xmis ttt.isE oauth-private.keyE oauth-public.kev= storageE supervisord.pidtext-relav.isontestsFeatureM Intearation• m Servicesv 7UnitActionsm ComnonentM ConficurationConsoleContractsD DomainMntoD EnumsD EventsD ExceptionsRemoteMatch.onp)MatchactivityermData.pnp© Job.php© PaginationState.phpC) MatchCrmData.phpC) CrmObiectsResolver.pho© ProviderRateLimiter.php(C) PaqinationContia.phpclass Cuient extends BasecLient imolements HubspotcuientinterfaceA2 A67 ×3 ^ v 53612153453%538₴126127128129131133135137© EmailActivityImportExc139C HandlerT est.php© RateLimitExceptionTes1410 fixturesa GuardsC HelpersahiteIntearationsa InteractionsM.Jobs147148> ActivitvM AiAutomation>M Audiol• M AutomatedRenorts150151152C CreateResultsTest.1531C) RequestGenerateA.C) RequestGenerateR,© SendReportExpiring© SendReportJobTes@& SendReportMailJobe CondDonartNatGon159|MelondarMemmTacts naccod. 12 (todav 12:02public function isHubspotRateLimit(Throwable Se): boolse inscanceotGuzzLehcco cxcepcion kequesctxcepclonrecurn (1nu se->geclode === 427*nublic function narseRetrvAfter(Throwable Se): intif method exists(Se.'aetResoonseHeaders'))Sheaders = Se->aetResoonseHeadersor2.$value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;if Gs arrav(Svalue)) <11— 5411I11ISvalue = Svaluelol 22 null.if (is numeric(Svalue)) {return (int) Svalue;Smessage = strtolower(Se->getMessageO):if (str_contains($message,'daily')){=562if (str_ contains(Smessaqe.'ten secondly')) {return 10%if (str_contains(Smessaqe, 'secondly')) {return 1"Sthis->lo0->warnina('[Hubspotl No retry-after header or known message. using default'. ['excention class' => det class(Se)1 111neturn 10+1111x5CcW.*[2026-05-11 11:17:57] Local.INFO: [Prospect match] Cache / local search hit ("identifier_type":"€ -wsg.[2026-05-11 11:17:57] local.INF0: [CrmActivityService] CRM matching completed {"activity_id":612594,"participant[2026-05-11 11:17:57] local.INF0: [ EsUpdateTarget ] Update single target {"target":"activities","purpose": "seaf[2026-05-11 11:17:57] local.INF0: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activit[2026-05-11 11:17:57] local.INF0: [MatchActivityCrmData] Successfully matched CRM data {"activity":612594,"remot[2026-05-11 11:17:58]local.INF0: [MatchActivityCrmData] Starting CRM data matching {"activity":612593,"remote_s[2026-05-11 11:17:58] local.INF0:[ EsUpdateTarget ] Update single target {"target":"activities" "purpose":"sean[2026-05-11 11:17:58]Local.LNFU.[ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activit[2026-05-11 11:17:58] local.INF0:[MatchActivityCrmData] Participants old state {"activity":612593,"participants[2026-05-11 11:17:58]Local. Inru: Lsoczalaccountservaces retchang token t soczalaccountld 11499, provzder : hu.[2026-05-11 11:17:58] local.INF0:Soc1aLAccountservice Token recrieved "soc1aLACCOUncld":1474, "prov1der":"nUa12626-05-11 11417158Local.Inru.[2026-05-11 11:17:581 local. INF0:lencrvoredlokenmanager benerarina access roken. ""mode":"Leqacy"r ""correlar[CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider": "hubCrmActivitvServicel Emarl domann belonas to the team. skapping crm lookup "al2826-05-11 11:17:58 Local.INF0:[2026-05-11 11:17:58] local2826-05-11 11:17:5811[2026-05-11 11:17:58] local. INFO:2826-05-1111:17:5811CrmActivitvServicel CRM matchina completed "activity 1d":612593."participant12026-05-11 11:17:58J2026-05-11AsvncUodatezlasticSearch Entitv added to Redis uist <"entitvivoe":"activit[MatchActivityCrmData] Successfully matched CRM data {"activity":612593, "remotMatchActivitvermDatal Startino CRM data matchina "activitv":612592 "remote s[2026-05-112026-05-1111:17:58]Local. TNFO:EsUpdateTarget ] Update single target {"target":"activities","purpose":"sear11:17-581 local. TNEO:AsvncUndate=lasticSearch1 Entitv added to Redis List <"entitvivne"."activit11:17:581Local. TNEO.MatchActivitvCrmDatal Particinants old state "activity":612592 "narticinants11:17•5911Local. TNFO:[SocialAccountServicel Fetchina token "socialAccountId": 1499 "oroviden" • "hubs[2026-05-1111:17:59]local.INFO:Sacral Accoun+Cervicel Token netrieved "icocialAccountTd"• 1400 "nnovidenll•"huh12926-05-11 11•17•5911Jocal TASh•[EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlati[2026-05-11 11:17:59]Tocal TASO•[CrmOwnerResolver] Integration owner matched as CRM Owner {"erm_provider": "hub12026-05-11 11•17•591 local TAS0•Prosnect matchl Cache / local ceanch hit cuidentifien tvnel."email" "identifi[2026-05-11 11:17:59]local.INF0: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {"a12026-05-11 11•17•591 1ocal TAE0•[CrmActivityService] CRM matching completed {"activity_id":612592, "participant[2026-05-11 11:17:59]local.INF0: [ EsUpdateTarget ] Update single target {"target":"activities" "purpose":"sear112004-05-11 11.17•501 1oлa1 TACП•[ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activit[2026-05-11 11:17:59]local.INFO: [MatchActivityCrmData] Successfully matched CRM data {"activity":612592, "remot10004-05-11 11:17.591 Local.INFO:[MatchActivityCrmDatal Starting CRM data matching {"activity":612591,"remote s[2026-05-11 11:17:591local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities" "purpose". "sean[2026-05-11 11:17:591 local.INF0:[ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activit[2026-05-11 11:17:59] local.INF0: [MatchActivityCrmDatal Participants old state {"activity":612591,"participants[2026-05-11 11:18:001 local. INF0:[SocialAccountServicel Fetching token {"socialAccountId":1499 "provider". "hubs[2026-05-11 11:18:001 local.INF0: [SocialAccountServicel Token retrieved {"socialAccountId": 1499 "providen" . "hub[2026-05-11 11:18:001 local.INF0:[EncryptedTokenManager] Generating access token. {"mode". "legacv"} {"correlatiowner matched as CRM Owner {"crm_provider":"hub12826-05-11 11:18:001LOCaL,INFO[2026-05-11 11:18:001 local, INE0:2026-05-1111: 18:001|Local, INFO.[2026-05-11 11:18:001 localCache local search hit "identifier tvoe"."emai" "identifi2026-05-1111: 18:001|[2026-05-11 11:18:001 locallAsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activit12926-05-11111•18•001 Tocal. TAS0:MatchActivitvirmlatal Succeccfuliy matched CPM data diactivitvl:612501 Ilremot[MatchActivityCrmData] Starting CRM data matching l"activity":612590,"remote_s• Preparation tor Kell.. In 42 m100% 1• Mon 11 May 14:18:20HandleHubspotRateLimitTest v+0 ..lets simplify it, just call it parseMessage and skip policy al togetherHubspot Rate Limit ReThought for 5s ›Read Client.php #L86-200b Client.phpVerify nothing broke:Command docker, taili• docker exec docker_nampat php vendor/bon/phpunittests/Unit/J0bs/Middleware/HandleHubspotRatel/mitTest-phptests/Unit/Services/Crm/Hubspot/ClientTest.php --no-coverage 2>&1 | tail -10attateslmoePHP 8.3.30contiourat ion:nome1iminnyonounit.xml[PASSWORD_DOTS]DD..DD..D.D..DDDDD.DDD.......65 / 80 (1808)Time: 62:14.415. Memorv: 62.00 MBAll ou tests still passSummaryRemoved narsePo Eicv entirelv. narseRetrvAfter now mans messade kevwords direct v to seconds without theintermediate policy conceptBefore: header parsePolicy » policy constant → seconds After: header → parseMessage → seconds• parsePolicy → deleted•narseMessade added: returns the raw messade strina from the response bodv (or •)parseRetryAfter does the keyword matching itself (daily → 600, ten secondly → 10, secondly → 1)• Log line in executeRequest now logs message instead of policy - more informative for debuggingThe keyword-match order is the same as before (daily before ten secondly before secondly ) to avoid substringAsk anvthing (&4L)« CodeClaude Qnus 4.7 MediumWN Windsurf Toams 2-1UTF.8io 4 spaces...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18452
|
NULL
|
0
|
2026-05-11T11:18:51.243170+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498331243_m1.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
True
|
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
New Line
Preserve case
1/22
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
39
Previous Highlighted Error
Next Highlighted Error
[2026-05-11 11:17:21] local.NOTICE: Monitoring start {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:21] local.NOTICE: Monitoring end {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:34] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:35] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":4} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":1} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUp...
|
[{"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},{"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/22","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":"39","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:17:21] local.NOTICE: Monitoring start {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:21] local.NOTICE: Monitoring end {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":1} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.0,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-d (truncated...)\n\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":5} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-e (truncated...)\n\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":16.99,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}","depth":4,"on_screen":true,"value":"[2026-05-11 11:17:21] local.NOTICE: Monitoring start {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:21] local.NOTICE: Monitoring end {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":1} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.0,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-d (truncated...)\n\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":5} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-e (truncated...)\n\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":16.99,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}","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}]...
|
625236172980226271
|
6378616412482181476
|
idle
|
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
1/22
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
39
Previous Highlighted Error
Next Highlighted Error
[2026-05-11 11:17:21] local.NOTICE: Monitoring start {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:21] local.NOTICE: Monitoring end {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:34] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:35] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":4} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":1} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUp...
|
18450
|
NULL
|
NULL
|
NULL
|
|
18453
|
797
|
0
|
2026-05-11T11:18:55.544267+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498335544_m2.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
True
|
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
1/22
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
39
Previous Highlighted Error
Next Highlighted Error
[2026-05-11 11:17:21] local.NOTICE: Monitoring start {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:21] local.NOTICE: Monitoring end {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:34] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:35] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":4} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":1} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUp...
|
[{"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.37965426,"top":0.19952115,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"67","depth":4,"bounds":{"left":0.38962767,"top":0.19952115,"width":0.009973404,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"bounds":{"left":0.40159574,"top":0.19952115,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.4112367,"top":0.19792499,"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.41855052,"top":0.19792499,"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.42985374,"top":0.105347164,"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.4424867,"top":0.10454908,"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.45345744,"top":0.10454908,"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.54022604,"top":0.10454908,"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.55019945,"top":0.10454908,"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.5588431,"top":0.10454908,"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.5674867,"top":0.10454908,"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/22","depth":4,"bounds":{"left":0.58111703,"top":0.103751,"width":0.025598405,"height":0.017557861},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Occurrence","depth":4,"bounds":{"left":0.60671544,"top":0.10295291,"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.61535907,"top":0.10295291,"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.62400264,"top":0.10295291,"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.63264626,"top":0.10295291,"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.7250665,"top":0.10295291,"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":"39","depth":4,"bounds":{"left":0.7117686,"top":0.13407822,"width":0.010305851,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.7237367,"top":0.13248204,"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.73105055,"top":0.13248204,"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:17:21] local.NOTICE: Monitoring start {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:21] local.NOTICE: Monitoring end {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":1} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.0,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-d (truncated...)\n\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":5} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-e (truncated...)\n\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":16.99,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}","depth":4,"on_screen":true,"value":"[2026-05-11 11:17:21] local.NOTICE: Monitoring start {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:21] local.NOTICE: Monitoring end {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":1} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.0,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-d (truncated...)\n\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":5} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-e (truncated...)\n\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":16.99,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}","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},{"role":"AXButton","text":"New File or Directory…","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":"AXButton","text":"Expand Selected","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":"AXButton","text":"Collapse All","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":"AXButton","text":"Options","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":"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}]...
|
625236172980226271
|
6378616412482181476
|
idle
|
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
1/22
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
39
Previous Highlighted Error
Next Highlighted Error
[2026-05-11 11:17:21] local.NOTICE: Monitoring start {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:21] local.NOTICE: Monitoring end {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:34] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:35] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":4} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":1} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUp...
|
18451
|
NULL
|
NULL
|
NULL
|
|
18454
|
796
|
0
|
2026-05-11T11:19:21.589019+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498361589_m1.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
True
|
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
New Line
Preserve case
1/22
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
39
Previous Highlighted Error
Next Highlighted Error
[2026-05-11 11:17:21] local.NOTICE: Monitoring start {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:21] local.NOTICE: Monitoring end {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:34] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:35] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":4} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":1} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUp...
|
[{"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},{"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/22","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":"39","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:17:21] local.NOTICE: Monitoring start {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:21] local.NOTICE: Monitoring end {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":1} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.0,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-d (truncated...)\n\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":5} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-e (truncated...)\n\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":16.99,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}","depth":4,"on_screen":true,"value":"[2026-05-11 11:17:21] local.NOTICE: Monitoring start {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:21] local.NOTICE: Monitoring end {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":1} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.0,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-d (truncated...)\n\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":5} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-e (truncated...)\n\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":16.99,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}","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}]...
|
625236172980226271
|
6378616412482181476
|
idle
|
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
1/22
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
39
Previous Highlighted Error
Next Highlighted Error
[2026-05-11 11:17:21] local.NOTICE: Monitoring start {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:21] local.NOTICE: Monitoring end {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:34] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:35] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":4} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":1} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUp...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18475
|
NULL
|
0
|
2026-05-11T11:23:57.599832+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498637599_m1.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
True
|
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
New Line
Preserve case
23/38
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
[2026-05-11 11:17:21] local.NOTICE: Monitoring start {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:21] local.NOTICE: Monitoring end {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:34] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:35] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":4} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":1} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activit...
|
[{"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},{"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":"23/38","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":"AXTextArea","text":"[2026-05-11 11:17:21] local.NOTICE: Monitoring start {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:21] local.NOTICE: Monitoring end {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":1} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.0,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-d (truncated...)\n\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":5} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-e (truncated...)\n\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":16.99,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:08] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:10] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":4.14,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:19] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"5a640073-717d-40da-ad67-be02e37c56a2\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.24,\"average_seconds_per_request\":0.24} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.32,\"average_seconds_per_request\":0.32} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612562,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612562,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612562,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612561,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612561,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612560,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612560,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612560,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.89,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612360,\"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\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612360,\"participants\":[{\"id\":999552,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999553,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999565,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612360,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.29,\"average_seconds_per_request\":0.29} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612360,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612360,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612340,\"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\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612340,\"participants\":[{\"id\":999516,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999517,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999518,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999519,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612340,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.34,\"average_seconds_per_request\":0.34} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612340,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612340,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.75,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612339,\"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\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612339,\"participants\":[{\"id\":999514,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999515,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999540,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612339,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612339,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612339,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612336,\"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\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612336,\"participants\":[{\"id\":999508,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999509,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999512,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999513,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612336,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612336,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612336,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612183,\"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\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612183,\"participants\":[{\"id\":999227,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999228,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612183,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612183,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612183,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612182,\"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\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612182,\"participants\":[{\"id\":999225,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999226,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612182,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612182,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612182,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612181,\"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\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612181,\"participants\":[{\"id\":999223,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999224,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612181,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612181,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612181,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612180,\"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\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612180,\"participants\":[{\"id\":999221,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999222,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612180,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612180,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612180,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611455,\"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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611455,\"participants\":[{\"id\":997961,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997962,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.23,\"average_seconds_per_request\":0.23} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.27,\"average_seconds_per_request\":0.27} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611455,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611455,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611455,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611451,\"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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611451,\"participants\":[{\"id\":997955,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997956,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.25,\"average_seconds_per_request\":0.25} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:38] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.44,\"average_seconds_per_request\":0.44} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.16,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611087,\"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\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611087,\"participants\":[{\"id\":997368,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997369,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611087,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611087,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611087,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611076,\"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\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611076,\"participants\":[{\"id\":997346,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997347,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611076,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611076,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611076,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610935,\"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\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610935,\"participants\":[{\"id\":997141,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997142,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610935,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610935,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610935,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610915,\"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\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610915,\"participants\":[{\"id\":997104,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997105,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610915,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610915,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610915,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610900,\"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\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610900,\"participants\":[{\"id\":997081,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997082,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610900,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610900,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610900,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610885,\"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\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610885,\"participants\":[{\"id\":997051,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997052,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610885,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610885,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610885,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610878,\"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\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610878,\"participants\":[{\"id\":997035,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997036,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610878,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610878,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610878,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610874,\"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\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610874,\"participants\":[{\"id\":997025,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997026,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610874,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610874,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610874,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610867,\"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\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610867,\"participants\":[{\"id\":997011,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997012,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610867,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610867,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610867,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610764,\"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\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610764,\"participants\":[{\"id\":996951,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996952,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610764,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610764,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610764,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610617,\"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\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610617,\"participants\":[{\"id\":996641,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996642,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610617,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610617,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610617,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610539,\"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\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610539,\"participants\":[{\"id\":996485,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996486,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610539,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610539,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610539,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.4,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610528,\"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\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610528,\"participants\":[{\"id\":996463,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996464,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610528,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610528,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610528,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610506,\"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\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610506,\"participants\":[{\"id\":996419,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996420,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610506,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610506,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610506,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610497,\"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\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610497,\"participants\":[{\"id\":996401,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996402,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610497,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610497,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610497,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610490,\"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\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610490,\"participants\":[{\"id\":996385,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996386,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610490,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610490,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610490,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610470,\"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\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610470,\"participants\":[{\"id\":996369,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996370,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610470,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610470,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610470,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610462,\"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\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610462,\"participants\":[{\"id\":996353,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996354,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610462,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610462,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610462,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610451,\"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\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610451,\"participants\":[{\"id\":996340,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996341,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610438,\"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\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610438,\"participants\":[{\"id\":996320,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996321,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610438,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610438,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610438,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610426,\"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\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610426,\"participants\":[{\"id\":996306,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996307,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610426,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610426,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610426,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610403,\"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\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610403,\"participants\":[{\"id\":996282,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996283,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610403,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610403,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610403,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610400,\"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\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610400,\"participants\":[{\"id\":996275,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null},{\"id\":996276,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":996277,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":1460} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610400,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610400,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.51,\"average_seconds_per_request\":0.51} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.35,\"average_seconds_per_request\":0.35} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614382,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614382,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614382,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614381,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614381,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614381,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":615092,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":615092,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":615092,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614436,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614436,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614436,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nmalchev@gmail.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614378,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614378,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614378,\"remote_search\":true,\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.84,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:51] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.28,\"average_seconds_per_request\":0.28} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.43,\"average_seconds_per_request\":0.43} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612847,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612847,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612847,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612819,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612819,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:57] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.25,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:12] 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\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring start {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring end {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:21] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:10] 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\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring start {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring end {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:37] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:15\",\"to\":\"11:20\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:10\",\"to\":\"01:15\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:41] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:22:48.807561Z\"} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Auth] Requesting new client credentials token {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Auth] Successfully obtained new access token {\"expires_in\":1800,\"cached_for\":1500} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:54] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:59] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}","depth":4,"on_screen":true,"value":"[2026-05-11 11:17:21] local.NOTICE: Monitoring start {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:21] local.NOTICE: Monitoring end {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":1} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.0,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-d (truncated...)\n\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":5} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-e (truncated...)\n\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":16.99,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:08] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:10] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":4.14,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:19] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"5a640073-717d-40da-ad67-be02e37c56a2\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.24,\"average_seconds_per_request\":0.24} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.32,\"average_seconds_per_request\":0.32} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612562,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612562,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612562,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612561,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612561,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612560,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612560,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612560,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.89,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612360,\"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\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612360,\"participants\":[{\"id\":999552,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999553,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999565,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612360,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.29,\"average_seconds_per_request\":0.29} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612360,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612360,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612340,\"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\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612340,\"participants\":[{\"id\":999516,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999517,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999518,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999519,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612340,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.34,\"average_seconds_per_request\":0.34} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612340,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612340,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.75,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612339,\"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\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612339,\"participants\":[{\"id\":999514,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999515,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999540,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612339,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612339,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612339,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612336,\"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\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612336,\"participants\":[{\"id\":999508,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999509,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999512,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999513,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612336,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612336,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612336,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612183,\"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\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612183,\"participants\":[{\"id\":999227,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999228,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612183,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612183,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612183,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612182,\"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\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612182,\"participants\":[{\"id\":999225,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999226,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612182,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612182,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612182,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612181,\"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\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612181,\"participants\":[{\"id\":999223,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999224,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612181,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612181,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612181,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612180,\"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\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612180,\"participants\":[{\"id\":999221,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999222,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612180,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612180,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612180,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611455,\"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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611455,\"participants\":[{\"id\":997961,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997962,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.23,\"average_seconds_per_request\":0.23} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.27,\"average_seconds_per_request\":0.27} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611455,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611455,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611455,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611451,\"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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611451,\"participants\":[{\"id\":997955,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997956,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.25,\"average_seconds_per_request\":0.25} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:38] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.44,\"average_seconds_per_request\":0.44} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.16,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611087,\"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\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611087,\"participants\":[{\"id\":997368,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997369,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611087,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611087,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611087,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611076,\"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\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611076,\"participants\":[{\"id\":997346,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997347,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611076,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611076,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611076,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610935,\"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\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610935,\"participants\":[{\"id\":997141,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997142,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610935,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610935,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610935,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610915,\"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\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610915,\"participants\":[{\"id\":997104,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997105,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610915,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610915,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610915,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610900,\"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\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610900,\"participants\":[{\"id\":997081,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997082,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610900,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610900,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610900,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610885,\"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\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610885,\"participants\":[{\"id\":997051,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997052,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610885,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610885,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610885,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610878,\"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\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610878,\"participants\":[{\"id\":997035,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997036,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610878,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610878,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610878,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610874,\"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\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610874,\"participants\":[{\"id\":997025,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997026,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610874,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610874,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610874,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610867,\"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\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610867,\"participants\":[{\"id\":997011,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997012,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610867,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610867,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610867,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610764,\"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\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610764,\"participants\":[{\"id\":996951,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996952,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610764,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610764,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610764,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610617,\"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\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610617,\"participants\":[{\"id\":996641,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996642,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610617,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610617,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610617,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610539,\"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\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610539,\"participants\":[{\"id\":996485,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996486,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610539,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610539,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610539,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.4,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610528,\"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\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610528,\"participants\":[{\"id\":996463,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996464,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610528,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610528,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610528,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610506,\"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\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610506,\"participants\":[{\"id\":996419,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996420,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610506,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610506,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610506,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610497,\"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\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610497,\"participants\":[{\"id\":996401,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996402,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610497,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610497,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610497,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610490,\"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\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610490,\"participants\":[{\"id\":996385,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996386,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610490,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610490,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610490,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610470,\"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\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610470,\"participants\":[{\"id\":996369,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996370,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610470,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610470,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610470,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610462,\"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\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610462,\"participants\":[{\"id\":996353,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996354,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610462,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610462,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610462,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610451,\"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\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610451,\"participants\":[{\"id\":996340,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996341,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610438,\"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\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610438,\"participants\":[{\"id\":996320,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996321,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610438,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610438,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610438,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610426,\"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\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610426,\"participants\":[{\"id\":996306,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996307,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610426,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610426,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610426,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610403,\"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\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610403,\"participants\":[{\"id\":996282,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996283,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610403,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610403,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610403,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610400,\"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\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610400,\"participants\":[{\"id\":996275,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null},{\"id\":996276,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":996277,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":1460} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610400,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610400,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.51,\"average_seconds_per_request\":0.51} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.35,\"average_seconds_per_request\":0.35} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614382,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614382,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614382,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614381,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614381,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614381,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":615092,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":615092,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":615092,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614436,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614436,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614436,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nmalchev@gmail.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614378,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614378,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614378,\"remote_search\":true,\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.84,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:51] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.28,\"average_seconds_per_request\":0.28} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.43,\"average_seconds_per_request\":0.43} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612847,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612847,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612847,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612819,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612819,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:57] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.25,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:12] 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\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring start {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring end {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:21] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:10] 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\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring start {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring end {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:37] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:15\",\"to\":\"11:20\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:10\",\"to\":\"01:15\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:41] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:22:48.807561Z\"} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Auth] Requesting new client credentials token {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Auth] Successfully obtained new access token {\"expires_in\":1800,\"cached_for\":1500} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:54] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:59] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}","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}]...
|
3313799739692082153
|
6378616412482181476
|
idle
|
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
23/38
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
[2026-05-11 11:17:21] local.NOTICE: Monitoring start {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:21] local.NOTICE: Monitoring end {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:34] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:35] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":4} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":1} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activit...
|
18471
|
NULL
|
NULL
|
NULL
|
|
18476
|
NULL
|
0
|
2026-05-11T11:24:00.967311+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498640967_m2.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
True
|
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
23/38
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
[2026-05-11 11:17:21] local.NOTICE: Monitoring start {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:21] local.NOTICE: Monitoring end {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:34] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:35] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":4} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":1} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activit...
|
[{"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.37965426,"top":0.19952115,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"67","depth":4,"bounds":{"left":0.38962767,"top":0.19952115,"width":0.009973404,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"bounds":{"left":0.40159574,"top":0.19952115,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.4112367,"top":0.19792499,"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.41855052,"top":0.19792499,"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.42985374,"top":0.105347164,"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.4424867,"top":0.10454908,"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.45345744,"top":0.10454908,"width":0.043882977,"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.5063165,"top":0.10454908,"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.5162899,"top":0.10454908,"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.5249335,"top":0.10454908,"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.53357714,"top":0.10454908,"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":"23/38","depth":4,"bounds":{"left":0.5472075,"top":0.103751,"width":0.025598405,"height":0.017557861},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Occurrence","depth":4,"bounds":{"left":0.5728058,"top":0.10295291,"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.58144945,"top":0.10295291,"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.5900931,"top":0.10295291,"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.5987367,"top":0.10295291,"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.7250665,"top":0.10295291,"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":"AXTextArea","text":"[2026-05-11 11:17:21] local.NOTICE: Monitoring start {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:21] local.NOTICE: Monitoring end {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":1} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.0,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-d (truncated...)\n\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":5} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-e (truncated...)\n\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":16.99,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:08] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:10] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":4.14,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:19] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"5a640073-717d-40da-ad67-be02e37c56a2\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.24,\"average_seconds_per_request\":0.24} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.32,\"average_seconds_per_request\":0.32} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612562,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612562,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612562,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612561,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612561,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612560,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612560,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612560,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.89,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612360,\"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\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612360,\"participants\":[{\"id\":999552,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999553,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999565,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612360,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.29,\"average_seconds_per_request\":0.29} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612360,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612360,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612340,\"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\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612340,\"participants\":[{\"id\":999516,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999517,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999518,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999519,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612340,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.34,\"average_seconds_per_request\":0.34} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612340,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612340,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.75,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612339,\"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\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612339,\"participants\":[{\"id\":999514,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999515,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999540,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612339,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612339,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612339,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612336,\"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\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612336,\"participants\":[{\"id\":999508,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999509,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999512,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999513,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612336,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612336,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612336,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612183,\"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\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612183,\"participants\":[{\"id\":999227,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999228,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612183,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612183,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612183,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612182,\"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\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612182,\"participants\":[{\"id\":999225,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999226,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612182,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612182,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612182,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612181,\"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\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612181,\"participants\":[{\"id\":999223,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999224,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612181,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612181,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612181,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612180,\"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\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612180,\"participants\":[{\"id\":999221,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999222,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612180,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612180,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612180,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611455,\"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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611455,\"participants\":[{\"id\":997961,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997962,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.23,\"average_seconds_per_request\":0.23} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.27,\"average_seconds_per_request\":0.27} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611455,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611455,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611455,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611451,\"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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611451,\"participants\":[{\"id\":997955,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997956,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.25,\"average_seconds_per_request\":0.25} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:38] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.44,\"average_seconds_per_request\":0.44} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.16,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611087,\"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\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611087,\"participants\":[{\"id\":997368,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997369,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611087,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611087,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611087,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611076,\"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\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611076,\"participants\":[{\"id\":997346,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997347,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611076,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611076,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611076,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610935,\"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\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610935,\"participants\":[{\"id\":997141,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997142,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610935,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610935,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610935,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610915,\"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\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610915,\"participants\":[{\"id\":997104,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997105,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610915,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610915,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610915,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610900,\"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\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610900,\"participants\":[{\"id\":997081,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997082,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610900,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610900,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610900,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610885,\"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\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610885,\"participants\":[{\"id\":997051,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997052,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610885,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610885,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610885,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610878,\"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\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610878,\"participants\":[{\"id\":997035,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997036,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610878,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610878,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610878,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610874,\"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\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610874,\"participants\":[{\"id\":997025,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997026,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610874,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610874,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610874,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610867,\"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\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610867,\"participants\":[{\"id\":997011,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997012,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610867,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610867,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610867,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610764,\"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\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610764,\"participants\":[{\"id\":996951,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996952,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610764,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610764,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610764,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610617,\"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\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610617,\"participants\":[{\"id\":996641,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996642,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610617,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610617,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610617,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610539,\"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\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610539,\"participants\":[{\"id\":996485,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996486,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610539,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610539,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610539,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.4,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610528,\"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\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610528,\"participants\":[{\"id\":996463,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996464,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610528,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610528,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610528,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610506,\"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\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610506,\"participants\":[{\"id\":996419,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996420,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610506,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610506,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610506,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610497,\"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\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610497,\"participants\":[{\"id\":996401,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996402,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610497,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610497,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610497,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610490,\"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\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610490,\"participants\":[{\"id\":996385,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996386,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610490,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610490,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610490,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610470,\"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\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610470,\"participants\":[{\"id\":996369,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996370,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610470,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610470,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610470,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610462,\"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\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610462,\"participants\":[{\"id\":996353,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996354,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610462,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610462,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610462,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610451,\"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\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610451,\"participants\":[{\"id\":996340,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996341,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610438,\"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\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610438,\"participants\":[{\"id\":996320,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996321,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610438,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610438,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610438,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610426,\"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\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610426,\"participants\":[{\"id\":996306,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996307,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610426,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610426,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610426,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610403,\"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\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610403,\"participants\":[{\"id\":996282,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996283,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610403,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610403,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610403,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610400,\"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\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610400,\"participants\":[{\"id\":996275,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null},{\"id\":996276,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":996277,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":1460} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610400,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610400,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.51,\"average_seconds_per_request\":0.51} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.35,\"average_seconds_per_request\":0.35} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614382,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614382,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614382,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614381,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614381,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614381,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":615092,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":615092,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":615092,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614436,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614436,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614436,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nmalchev@gmail.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614378,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614378,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614378,\"remote_search\":true,\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.84,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:51] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.28,\"average_seconds_per_request\":0.28} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.43,\"average_seconds_per_request\":0.43} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612847,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612847,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612847,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612819,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612819,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:57] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.25,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:12] 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\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring start {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring end {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:21] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:10] 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\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring start {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring end {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:37] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:15\",\"to\":\"11:20\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:10\",\"to\":\"01:15\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:41] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:22:48.807561Z\"} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Auth] Requesting new client credentials token {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Auth] Successfully obtained new access token {\"expires_in\":1800,\"cached_for\":1500} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:54] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:59] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}","depth":4,"on_screen":true,"value":"[2026-05-11 11:17:21] local.NOTICE: Monitoring start {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:21] local.NOTICE: Monitoring end {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":1} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.0,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-d (truncated...)\n\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":5} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-e (truncated...)\n\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":16.99,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:08] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:10] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":4.14,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:19] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"5a640073-717d-40da-ad67-be02e37c56a2\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.24,\"average_seconds_per_request\":0.24} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.32,\"average_seconds_per_request\":0.32} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612562,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612562,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612562,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612561,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612561,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612560,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612560,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612560,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.89,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612360,\"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\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612360,\"participants\":[{\"id\":999552,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999553,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999565,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612360,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.29,\"average_seconds_per_request\":0.29} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612360,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612360,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612340,\"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\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612340,\"participants\":[{\"id\":999516,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999517,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999518,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999519,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612340,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.34,\"average_seconds_per_request\":0.34} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612340,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612340,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.75,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612339,\"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\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612339,\"participants\":[{\"id\":999514,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999515,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999540,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612339,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612339,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612339,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612336,\"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\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612336,\"participants\":[{\"id\":999508,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999509,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999512,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999513,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612336,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612336,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612336,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612183,\"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\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612183,\"participants\":[{\"id\":999227,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999228,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612183,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612183,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612183,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612182,\"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\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612182,\"participants\":[{\"id\":999225,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999226,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612182,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612182,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612182,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612181,\"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\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612181,\"participants\":[{\"id\":999223,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999224,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612181,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612181,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612181,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612180,\"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\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612180,\"participants\":[{\"id\":999221,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999222,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612180,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612180,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612180,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611455,\"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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611455,\"participants\":[{\"id\":997961,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997962,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.23,\"average_seconds_per_request\":0.23} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.27,\"average_seconds_per_request\":0.27} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611455,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611455,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611455,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611451,\"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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611451,\"participants\":[{\"id\":997955,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997956,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.25,\"average_seconds_per_request\":0.25} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:38] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.44,\"average_seconds_per_request\":0.44} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.16,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611087,\"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\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611087,\"participants\":[{\"id\":997368,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997369,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611087,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611087,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611087,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611076,\"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\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611076,\"participants\":[{\"id\":997346,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997347,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611076,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611076,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611076,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610935,\"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\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610935,\"participants\":[{\"id\":997141,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997142,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610935,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610935,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610935,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610915,\"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\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610915,\"participants\":[{\"id\":997104,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997105,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610915,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610915,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610915,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610900,\"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\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610900,\"participants\":[{\"id\":997081,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997082,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610900,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610900,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610900,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610885,\"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\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610885,\"participants\":[{\"id\":997051,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997052,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610885,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610885,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610885,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610878,\"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\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610878,\"participants\":[{\"id\":997035,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997036,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610878,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610878,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610878,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610874,\"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\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610874,\"participants\":[{\"id\":997025,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997026,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610874,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610874,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610874,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610867,\"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\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610867,\"participants\":[{\"id\":997011,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997012,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610867,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610867,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610867,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610764,\"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\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610764,\"participants\":[{\"id\":996951,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996952,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610764,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610764,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610764,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610617,\"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\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610617,\"participants\":[{\"id\":996641,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996642,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610617,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610617,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610617,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610539,\"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\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610539,\"participants\":[{\"id\":996485,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996486,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610539,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610539,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610539,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.4,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610528,\"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\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610528,\"participants\":[{\"id\":996463,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996464,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610528,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610528,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610528,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610506,\"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\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610506,\"participants\":[{\"id\":996419,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996420,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610506,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610506,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610506,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610497,\"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\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610497,\"participants\":[{\"id\":996401,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996402,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610497,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610497,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610497,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610490,\"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\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610490,\"participants\":[{\"id\":996385,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996386,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610490,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610490,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610490,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610470,\"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\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610470,\"participants\":[{\"id\":996369,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996370,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610470,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610470,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610470,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610462,\"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\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610462,\"participants\":[{\"id\":996353,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996354,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610462,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610462,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610462,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610451,\"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\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610451,\"participants\":[{\"id\":996340,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996341,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610438,\"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\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610438,\"participants\":[{\"id\":996320,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996321,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610438,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610438,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610438,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610426,\"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\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610426,\"participants\":[{\"id\":996306,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996307,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610426,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610426,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610426,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610403,\"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\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610403,\"participants\":[{\"id\":996282,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996283,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610403,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610403,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610403,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610400,\"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\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610400,\"participants\":[{\"id\":996275,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null},{\"id\":996276,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":996277,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":1460} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610400,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610400,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.51,\"average_seconds_per_request\":0.51} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.35,\"average_seconds_per_request\":0.35} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614382,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614382,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614382,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614381,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614381,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614381,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":615092,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":615092,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":615092,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614436,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614436,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614436,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nmalchev@gmail.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614378,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614378,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614378,\"remote_search\":true,\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.84,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:51] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.28,\"average_seconds_per_request\":0.28} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.43,\"average_seconds_per_request\":0.43} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612847,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612847,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612847,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612819,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612819,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:57] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.25,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:12] 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\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring start {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring end {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:21] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:10] 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\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring start {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring end {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:37] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:15\",\"to\":\"11:20\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:10\",\"to\":\"01:15\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:41] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:22:48.807561Z\"} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Auth] Requesting new client credentials token {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Auth] Successfully obtained new access token {\"expires_in\":1800,\"cached_for\":1500} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:54] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:59] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}","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},{"role":"AXButton","text":"New File or Directory…","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":"AXButton","text":"Expand Selected","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":"AXButton","text":"Collapse All","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":"AXButton","text":"Options","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":"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}]...
|
3313799739692082153
|
6378616412482181476
|
idle
|
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
23/38
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
[2026-05-11 11:17:21] local.NOTICE: Monitoring start {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:21] local.NOTICE: Monitoring end {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:34] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:35] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":4} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":1} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activit...
|
18472
|
NULL
|
NULL
|
NULL
|
|
18477
|
798
|
0
|
2026-05-11T11:24:27.936228+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498667936_m1.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
True
|
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
New Line
Preserve case
23/38
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
[2026-05-11 11:17:21] local.NOTICE: Monitoring start {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:21] local.NOTICE: Monitoring end {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:34] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:35] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":4} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":1} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activit...
|
[{"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},{"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":"23/38","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":"AXTextArea","text":"[2026-05-11 11:17:21] local.NOTICE: Monitoring start {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:21] local.NOTICE: Monitoring end {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":1} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.0,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-d (truncated...)\n\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":5} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-e (truncated...)\n\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":16.99,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:08] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:10] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":4.14,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:19] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"5a640073-717d-40da-ad67-be02e37c56a2\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.24,\"average_seconds_per_request\":0.24} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.32,\"average_seconds_per_request\":0.32} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612562,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612562,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612562,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612561,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612561,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612560,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612560,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612560,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.89,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612360,\"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\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612360,\"participants\":[{\"id\":999552,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999553,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999565,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612360,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.29,\"average_seconds_per_request\":0.29} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612360,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612360,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612340,\"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\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612340,\"participants\":[{\"id\":999516,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999517,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999518,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999519,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612340,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.34,\"average_seconds_per_request\":0.34} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612340,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612340,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.75,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612339,\"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\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612339,\"participants\":[{\"id\":999514,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999515,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999540,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612339,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612339,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612339,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612336,\"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\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612336,\"participants\":[{\"id\":999508,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999509,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999512,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999513,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612336,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612336,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612336,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612183,\"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\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612183,\"participants\":[{\"id\":999227,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999228,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612183,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612183,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612183,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612182,\"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\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612182,\"participants\":[{\"id\":999225,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999226,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612182,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612182,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612182,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612181,\"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\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612181,\"participants\":[{\"id\":999223,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999224,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612181,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612181,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612181,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612180,\"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\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612180,\"participants\":[{\"id\":999221,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999222,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612180,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612180,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612180,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611455,\"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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611455,\"participants\":[{\"id\":997961,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997962,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.23,\"average_seconds_per_request\":0.23} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.27,\"average_seconds_per_request\":0.27} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611455,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611455,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611455,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611451,\"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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611451,\"participants\":[{\"id\":997955,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997956,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.25,\"average_seconds_per_request\":0.25} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:38] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.44,\"average_seconds_per_request\":0.44} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.16,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611087,\"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\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611087,\"participants\":[{\"id\":997368,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997369,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611087,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611087,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611087,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611076,\"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\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611076,\"participants\":[{\"id\":997346,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997347,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611076,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611076,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611076,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610935,\"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\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610935,\"participants\":[{\"id\":997141,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997142,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610935,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610935,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610935,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610915,\"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\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610915,\"participants\":[{\"id\":997104,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997105,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610915,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610915,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610915,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610900,\"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\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610900,\"participants\":[{\"id\":997081,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997082,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610900,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610900,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610900,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610885,\"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\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610885,\"participants\":[{\"id\":997051,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997052,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610885,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610885,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610885,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610878,\"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\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610878,\"participants\":[{\"id\":997035,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997036,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610878,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610878,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610878,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610874,\"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\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610874,\"participants\":[{\"id\":997025,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997026,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610874,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610874,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610874,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610867,\"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\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610867,\"participants\":[{\"id\":997011,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997012,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610867,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610867,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610867,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610764,\"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\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610764,\"participants\":[{\"id\":996951,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996952,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610764,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610764,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610764,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610617,\"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\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610617,\"participants\":[{\"id\":996641,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996642,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610617,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610617,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610617,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610539,\"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\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610539,\"participants\":[{\"id\":996485,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996486,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610539,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610539,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610539,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.4,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610528,\"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\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610528,\"participants\":[{\"id\":996463,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996464,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610528,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610528,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610528,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610506,\"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\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610506,\"participants\":[{\"id\":996419,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996420,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610506,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610506,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610506,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610497,\"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\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610497,\"participants\":[{\"id\":996401,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996402,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610497,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610497,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610497,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610490,\"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\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610490,\"participants\":[{\"id\":996385,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996386,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610490,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610490,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610490,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610470,\"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\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610470,\"participants\":[{\"id\":996369,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996370,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610470,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610470,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610470,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610462,\"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\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610462,\"participants\":[{\"id\":996353,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996354,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610462,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610462,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610462,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610451,\"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\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610451,\"participants\":[{\"id\":996340,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996341,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610438,\"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\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610438,\"participants\":[{\"id\":996320,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996321,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610438,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610438,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610438,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610426,\"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\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610426,\"participants\":[{\"id\":996306,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996307,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610426,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610426,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610426,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610403,\"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\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610403,\"participants\":[{\"id\":996282,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996283,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610403,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610403,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610403,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610400,\"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\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610400,\"participants\":[{\"id\":996275,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null},{\"id\":996276,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":996277,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":1460} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610400,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610400,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.51,\"average_seconds_per_request\":0.51} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.35,\"average_seconds_per_request\":0.35} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614382,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614382,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614382,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614381,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614381,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614381,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":615092,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":615092,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":615092,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614436,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614436,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614436,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nmalchev@gmail.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614378,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614378,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614378,\"remote_search\":true,\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.84,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:51] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.28,\"average_seconds_per_request\":0.28} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.43,\"average_seconds_per_request\":0.43} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612847,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612847,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612847,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612819,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612819,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:57] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.25,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:12] 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\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring start {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring end {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:21] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:10] 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\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring start {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring end {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:37] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:15\",\"to\":\"11:20\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:10\",\"to\":\"01:15\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:41] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:22:48.807561Z\"} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Auth] Requesting new client credentials token {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Auth] Successfully obtained new access token {\"expires_in\":1800,\"cached_for\":1500} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:54] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:59] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}","depth":4,"on_screen":true,"value":"[2026-05-11 11:17:21] local.NOTICE: Monitoring start {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:21] local.NOTICE: Monitoring end {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":1} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.0,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-d (truncated...)\n\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":5} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-e (truncated...)\n\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":16.99,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:08] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:10] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":4.14,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:19] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"5a640073-717d-40da-ad67-be02e37c56a2\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.24,\"average_seconds_per_request\":0.24} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.32,\"average_seconds_per_request\":0.32} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612562,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612562,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612562,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612561,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612561,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612560,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612560,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612560,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.89,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612360,\"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\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612360,\"participants\":[{\"id\":999552,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999553,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999565,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612360,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.29,\"average_seconds_per_request\":0.29} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612360,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612360,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612340,\"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\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612340,\"participants\":[{\"id\":999516,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999517,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999518,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999519,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612340,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.34,\"average_seconds_per_request\":0.34} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612340,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612340,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.75,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612339,\"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\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612339,\"participants\":[{\"id\":999514,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999515,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999540,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612339,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612339,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612339,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612336,\"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\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612336,\"participants\":[{\"id\":999508,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999509,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999512,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999513,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612336,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612336,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612336,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612183,\"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\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612183,\"participants\":[{\"id\":999227,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999228,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612183,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612183,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612183,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612182,\"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\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612182,\"participants\":[{\"id\":999225,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999226,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612182,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612182,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612182,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612181,\"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\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612181,\"participants\":[{\"id\":999223,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999224,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612181,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612181,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612181,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612180,\"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\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612180,\"participants\":[{\"id\":999221,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999222,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612180,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612180,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612180,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611455,\"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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611455,\"participants\":[{\"id\":997961,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997962,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.23,\"average_seconds_per_request\":0.23} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.27,\"average_seconds_per_request\":0.27} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611455,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611455,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611455,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611451,\"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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611451,\"participants\":[{\"id\":997955,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997956,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.25,\"average_seconds_per_request\":0.25} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:38] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.44,\"average_seconds_per_request\":0.44} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.16,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611087,\"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\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611087,\"participants\":[{\"id\":997368,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997369,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611087,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611087,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611087,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611076,\"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\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611076,\"participants\":[{\"id\":997346,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997347,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611076,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611076,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611076,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610935,\"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\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610935,\"participants\":[{\"id\":997141,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997142,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610935,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610935,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610935,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610915,\"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\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610915,\"participants\":[{\"id\":997104,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997105,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610915,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610915,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610915,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610900,\"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\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610900,\"participants\":[{\"id\":997081,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997082,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610900,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610900,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610900,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610885,\"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\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610885,\"participants\":[{\"id\":997051,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997052,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610885,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610885,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610885,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610878,\"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\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610878,\"participants\":[{\"id\":997035,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997036,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610878,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610878,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610878,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610874,\"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\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610874,\"participants\":[{\"id\":997025,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997026,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610874,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610874,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610874,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610867,\"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\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610867,\"participants\":[{\"id\":997011,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997012,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610867,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610867,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610867,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610764,\"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\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610764,\"participants\":[{\"id\":996951,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996952,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610764,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610764,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610764,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610617,\"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\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610617,\"participants\":[{\"id\":996641,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996642,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610617,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610617,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610617,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610539,\"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\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610539,\"participants\":[{\"id\":996485,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996486,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610539,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610539,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610539,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.4,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610528,\"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\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610528,\"participants\":[{\"id\":996463,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996464,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610528,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610528,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610528,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610506,\"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\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610506,\"participants\":[{\"id\":996419,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996420,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610506,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610506,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610506,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610497,\"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\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610497,\"participants\":[{\"id\":996401,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996402,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610497,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610497,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610497,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610490,\"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\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610490,\"participants\":[{\"id\":996385,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996386,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610490,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610490,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610490,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610470,\"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\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610470,\"participants\":[{\"id\":996369,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996370,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610470,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610470,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610470,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610462,\"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\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610462,\"participants\":[{\"id\":996353,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996354,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610462,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610462,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610462,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610451,\"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\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610451,\"participants\":[{\"id\":996340,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996341,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610438,\"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\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610438,\"participants\":[{\"id\":996320,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996321,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610438,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610438,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610438,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610426,\"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\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610426,\"participants\":[{\"id\":996306,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996307,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610426,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610426,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610426,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610403,\"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\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610403,\"participants\":[{\"id\":996282,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996283,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610403,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610403,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610403,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610400,\"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\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610400,\"participants\":[{\"id\":996275,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null},{\"id\":996276,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":996277,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":1460} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610400,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610400,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.51,\"average_seconds_per_request\":0.51} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.35,\"average_seconds_per_request\":0.35} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614382,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614382,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614382,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614381,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614381,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614381,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":615092,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":615092,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":615092,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614436,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614436,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614436,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nmalchev@gmail.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614378,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614378,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614378,\"remote_search\":true,\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.84,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:51] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.28,\"average_seconds_per_request\":0.28} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.43,\"average_seconds_per_request\":0.43} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612847,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612847,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612847,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612819,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612819,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:57] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.25,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:12] 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\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring start {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring end {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:21] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:10] 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\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring start {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring end {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:37] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:15\",\"to\":\"11:20\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:10\",\"to\":\"01:15\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:41] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:22:48.807561Z\"} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Auth] Requesting new client credentials token {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Auth] Successfully obtained new access token {\"expires_in\":1800,\"cached_for\":1500} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:54] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:59] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}","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}]...
|
3313799739692082153
|
6378616412482181476
|
idle
|
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
23/38
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
[2026-05-11 11:17:21] local.NOTICE: Monitoring start {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:21] local.NOTICE: Monitoring end {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:34] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:35] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":4} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":1} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activit...
|
18471
|
NULL
|
NULL
|
NULL
|
|
18478
|
799
|
0
|
2026-05-11T11:24:31.505147+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498671505_m2.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
True
|
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
23/38
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
[2026-05-11 11:17:21] local.NOTICE: Monitoring start {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:21] local.NOTICE: Monitoring end {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:34] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:35] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":4} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":1} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activit...
|
[{"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.37965426,"top":0.19952115,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"67","depth":4,"bounds":{"left":0.38962767,"top":0.19952115,"width":0.009973404,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"bounds":{"left":0.40159574,"top":0.19952115,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.4112367,"top":0.19792499,"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.41855052,"top":0.19792499,"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.42985374,"top":0.105347164,"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.4424867,"top":0.10454908,"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.45345744,"top":0.10454908,"width":0.043882977,"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.5063165,"top":0.10454908,"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.5162899,"top":0.10454908,"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.5249335,"top":0.10454908,"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.53357714,"top":0.10454908,"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":"23/38","depth":4,"bounds":{"left":0.5472075,"top":0.103751,"width":0.025598405,"height":0.017557861},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Occurrence","depth":4,"bounds":{"left":0.5728058,"top":0.10295291,"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.58144945,"top":0.10295291,"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.5900931,"top":0.10295291,"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.5987367,"top":0.10295291,"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.7250665,"top":0.10295291,"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":"AXTextArea","text":"[2026-05-11 11:17:21] local.NOTICE: Monitoring start {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:21] local.NOTICE: Monitoring end {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":1} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.0,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-d (truncated...)\n\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":5} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-e (truncated...)\n\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":16.99,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:08] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:10] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":4.14,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:19] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"5a640073-717d-40da-ad67-be02e37c56a2\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.24,\"average_seconds_per_request\":0.24} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.32,\"average_seconds_per_request\":0.32} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612562,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612562,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612562,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612561,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612561,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612560,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612560,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612560,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.89,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612360,\"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\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612360,\"participants\":[{\"id\":999552,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999553,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999565,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612360,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.29,\"average_seconds_per_request\":0.29} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612360,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612360,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612340,\"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\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612340,\"participants\":[{\"id\":999516,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999517,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999518,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999519,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612340,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.34,\"average_seconds_per_request\":0.34} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612340,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612340,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.75,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612339,\"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\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612339,\"participants\":[{\"id\":999514,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999515,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999540,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612339,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612339,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612339,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612336,\"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\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612336,\"participants\":[{\"id\":999508,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999509,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999512,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999513,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612336,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612336,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612336,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612183,\"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\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612183,\"participants\":[{\"id\":999227,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999228,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612183,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612183,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612183,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612182,\"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\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612182,\"participants\":[{\"id\":999225,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999226,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612182,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612182,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612182,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612181,\"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\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612181,\"participants\":[{\"id\":999223,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999224,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612181,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612181,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612181,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612180,\"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\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612180,\"participants\":[{\"id\":999221,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999222,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612180,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612180,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612180,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611455,\"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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611455,\"participants\":[{\"id\":997961,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997962,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.23,\"average_seconds_per_request\":0.23} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.27,\"average_seconds_per_request\":0.27} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611455,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611455,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611455,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611451,\"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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611451,\"participants\":[{\"id\":997955,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997956,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.25,\"average_seconds_per_request\":0.25} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:38] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.44,\"average_seconds_per_request\":0.44} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.16,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611087,\"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\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611087,\"participants\":[{\"id\":997368,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997369,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611087,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611087,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611087,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611076,\"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\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611076,\"participants\":[{\"id\":997346,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997347,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611076,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611076,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611076,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610935,\"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\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610935,\"participants\":[{\"id\":997141,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997142,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610935,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610935,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610935,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610915,\"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\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610915,\"participants\":[{\"id\":997104,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997105,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610915,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610915,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610915,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610900,\"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\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610900,\"participants\":[{\"id\":997081,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997082,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610900,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610900,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610900,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610885,\"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\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610885,\"participants\":[{\"id\":997051,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997052,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610885,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610885,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610885,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610878,\"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\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610878,\"participants\":[{\"id\":997035,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997036,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610878,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610878,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610878,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610874,\"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\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610874,\"participants\":[{\"id\":997025,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997026,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610874,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610874,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610874,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610867,\"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\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610867,\"participants\":[{\"id\":997011,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997012,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610867,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610867,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610867,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610764,\"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\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610764,\"participants\":[{\"id\":996951,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996952,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610764,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610764,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610764,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610617,\"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\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610617,\"participants\":[{\"id\":996641,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996642,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610617,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610617,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610617,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610539,\"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\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610539,\"participants\":[{\"id\":996485,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996486,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610539,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610539,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610539,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.4,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610528,\"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\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610528,\"participants\":[{\"id\":996463,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996464,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610528,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610528,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610528,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610506,\"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\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610506,\"participants\":[{\"id\":996419,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996420,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610506,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610506,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610506,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610497,\"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\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610497,\"participants\":[{\"id\":996401,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996402,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610497,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610497,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610497,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610490,\"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\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610490,\"participants\":[{\"id\":996385,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996386,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610490,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610490,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610490,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610470,\"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\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610470,\"participants\":[{\"id\":996369,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996370,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610470,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610470,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610470,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610462,\"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\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610462,\"participants\":[{\"id\":996353,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996354,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610462,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610462,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610462,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610451,\"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\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610451,\"participants\":[{\"id\":996340,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996341,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610438,\"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\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610438,\"participants\":[{\"id\":996320,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996321,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610438,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610438,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610438,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610426,\"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\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610426,\"participants\":[{\"id\":996306,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996307,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610426,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610426,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610426,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610403,\"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\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610403,\"participants\":[{\"id\":996282,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996283,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610403,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610403,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610403,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610400,\"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\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610400,\"participants\":[{\"id\":996275,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null},{\"id\":996276,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":996277,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":1460} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610400,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610400,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.51,\"average_seconds_per_request\":0.51} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.35,\"average_seconds_per_request\":0.35} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614382,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614382,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614382,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614381,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614381,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614381,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":615092,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":615092,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":615092,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614436,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614436,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614436,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nmalchev@gmail.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614378,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614378,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614378,\"remote_search\":true,\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.84,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:51] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.28,\"average_seconds_per_request\":0.28} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.43,\"average_seconds_per_request\":0.43} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612847,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612847,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612847,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612819,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612819,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:57] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.25,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:12] 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\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring start {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring end {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:21] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:10] 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\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring start {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring end {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:37] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:15\",\"to\":\"11:20\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:10\",\"to\":\"01:15\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:41] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:22:48.807561Z\"} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Auth] Requesting new client credentials token {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Auth] Successfully obtained new access token {\"expires_in\":1800,\"cached_for\":1500} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:54] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:59] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}","depth":4,"on_screen":true,"value":"[2026-05-11 11:17:21] local.NOTICE: Monitoring start {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:21] local.NOTICE: Monitoring end {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":1} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.0,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-d (truncated...)\n\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":5} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-e (truncated...)\n\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":16.99,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:08] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:10] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":4.14,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:19] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"5a640073-717d-40da-ad67-be02e37c56a2\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.24,\"average_seconds_per_request\":0.24} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.32,\"average_seconds_per_request\":0.32} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612562,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612562,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612562,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612561,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612561,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612560,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612560,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612560,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.89,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612360,\"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\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612360,\"participants\":[{\"id\":999552,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999553,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999565,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612360,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.29,\"average_seconds_per_request\":0.29} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612360,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612360,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612340,\"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\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612340,\"participants\":[{\"id\":999516,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999517,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999518,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999519,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612340,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.34,\"average_seconds_per_request\":0.34} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612340,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612340,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.75,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612339,\"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\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612339,\"participants\":[{\"id\":999514,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999515,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999540,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612339,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612339,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612339,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612336,\"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\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612336,\"participants\":[{\"id\":999508,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999509,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999512,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999513,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612336,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612336,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612336,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612183,\"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\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612183,\"participants\":[{\"id\":999227,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999228,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612183,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612183,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612183,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612182,\"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\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612182,\"participants\":[{\"id\":999225,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999226,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612182,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612182,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612182,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612181,\"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\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612181,\"participants\":[{\"id\":999223,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999224,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612181,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612181,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612181,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612180,\"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\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612180,\"participants\":[{\"id\":999221,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999222,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612180,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612180,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612180,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611455,\"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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611455,\"participants\":[{\"id\":997961,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997962,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.23,\"average_seconds_per_request\":0.23} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.27,\"average_seconds_per_request\":0.27} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611455,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611455,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611455,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611451,\"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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611451,\"participants\":[{\"id\":997955,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997956,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.25,\"average_seconds_per_request\":0.25} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:38] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.44,\"average_seconds_per_request\":0.44} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.16,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611087,\"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\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611087,\"participants\":[{\"id\":997368,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997369,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611087,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611087,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611087,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611076,\"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\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611076,\"participants\":[{\"id\":997346,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997347,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611076,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611076,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611076,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610935,\"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\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610935,\"participants\":[{\"id\":997141,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997142,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610935,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610935,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610935,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610915,\"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\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610915,\"participants\":[{\"id\":997104,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997105,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610915,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610915,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610915,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610900,\"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\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610900,\"participants\":[{\"id\":997081,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997082,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610900,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610900,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610900,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610885,\"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\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610885,\"participants\":[{\"id\":997051,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997052,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610885,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610885,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610885,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610878,\"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\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610878,\"participants\":[{\"id\":997035,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997036,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610878,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610878,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610878,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610874,\"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\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610874,\"participants\":[{\"id\":997025,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997026,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610874,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610874,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610874,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610867,\"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\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610867,\"participants\":[{\"id\":997011,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997012,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610867,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610867,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610867,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610764,\"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\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610764,\"participants\":[{\"id\":996951,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996952,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610764,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610764,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610764,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610617,\"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\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610617,\"participants\":[{\"id\":996641,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996642,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610617,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610617,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610617,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610539,\"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\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610539,\"participants\":[{\"id\":996485,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996486,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610539,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610539,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610539,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.4,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610528,\"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\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610528,\"participants\":[{\"id\":996463,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996464,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610528,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610528,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610528,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610506,\"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\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610506,\"participants\":[{\"id\":996419,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996420,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610506,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610506,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610506,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610497,\"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\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610497,\"participants\":[{\"id\":996401,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996402,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610497,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610497,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610497,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610490,\"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\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610490,\"participants\":[{\"id\":996385,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996386,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610490,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610490,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610490,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610470,\"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\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610470,\"participants\":[{\"id\":996369,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996370,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610470,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610470,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610470,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610462,\"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\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610462,\"participants\":[{\"id\":996353,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996354,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610462,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610462,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610462,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610451,\"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\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610451,\"participants\":[{\"id\":996340,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996341,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610438,\"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\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610438,\"participants\":[{\"id\":996320,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996321,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610438,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610438,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610438,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610426,\"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\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610426,\"participants\":[{\"id\":996306,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996307,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610426,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610426,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610426,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610403,\"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\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610403,\"participants\":[{\"id\":996282,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996283,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610403,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610403,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610403,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610400,\"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\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610400,\"participants\":[{\"id\":996275,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null},{\"id\":996276,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":996277,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":1460} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610400,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610400,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.51,\"average_seconds_per_request\":0.51} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.35,\"average_seconds_per_request\":0.35} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614382,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614382,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614382,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614381,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614381,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614381,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":615092,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":615092,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":615092,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614436,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614436,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614436,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nmalchev@gmail.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614378,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614378,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614378,\"remote_search\":true,\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.84,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:51] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.28,\"average_seconds_per_request\":0.28} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.43,\"average_seconds_per_request\":0.43} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612847,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612847,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612847,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612819,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612819,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:57] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.25,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:12] 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\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring start {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring end {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:21] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:10] 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\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring start {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring end {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:37] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:15\",\"to\":\"11:20\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:10\",\"to\":\"01:15\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:41] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:22:48.807561Z\"} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Auth] Requesting new client credentials token {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Auth] Successfully obtained new access token {\"expires_in\":1800,\"cached_for\":1500} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:54] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:59] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}","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},{"role":"AXButton","text":"New File or Directory…","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":"AXButton","text":"Expand Selected","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":"AXButton","text":"Collapse All","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":"AXButton","text":"Options","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":"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}]...
|
3313799739692082153
|
6378616412482181476
|
idle
|
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
23/38
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
[2026-05-11 11:17:21] local.NOTICE: Monitoring start {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:21] local.NOTICE: Monitoring end {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:34] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:35] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":4} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":1} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activit...
|
18472
|
NULL
|
NULL
|
NULL
|
|
18495
|
NULL
|
0
|
2026-05-11T11:29:00.997431+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498940997_m1.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
True
|
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
New Line
Preserve case
23/38
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
[2026-05-11 11:17:21] local.NOTICE: Monitoring start {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:21] local.NOTICE: Monitoring end {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:34] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:35] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":4} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":1} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activit...
|
[{"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},{"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":"23/38","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":"AXTextArea","text":"[2026-05-11 11:17:21] local.NOTICE: Monitoring start {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:21] local.NOTICE: Monitoring end {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":1} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.0,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-d (truncated...)\n\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":5} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-e (truncated...)\n\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":16.99,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:08] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:10] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":4.14,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:19] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"5a640073-717d-40da-ad67-be02e37c56a2\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.24,\"average_seconds_per_request\":0.24} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.32,\"average_seconds_per_request\":0.32} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612562,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612562,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612562,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612561,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612561,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612560,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612560,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612560,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.89,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612360,\"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\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612360,\"participants\":[{\"id\":999552,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999553,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999565,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612360,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.29,\"average_seconds_per_request\":0.29} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612360,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612360,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612340,\"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\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612340,\"participants\":[{\"id\":999516,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999517,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999518,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999519,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612340,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.34,\"average_seconds_per_request\":0.34} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612340,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612340,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.75,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612339,\"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\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612339,\"participants\":[{\"id\":999514,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999515,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999540,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612339,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612339,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612339,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612336,\"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\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612336,\"participants\":[{\"id\":999508,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999509,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999512,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999513,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612336,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612336,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612336,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612183,\"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\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612183,\"participants\":[{\"id\":999227,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999228,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612183,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612183,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612183,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612182,\"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\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612182,\"participants\":[{\"id\":999225,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999226,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612182,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612182,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612182,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612181,\"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\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612181,\"participants\":[{\"id\":999223,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999224,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612181,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612181,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612181,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612180,\"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\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612180,\"participants\":[{\"id\":999221,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999222,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612180,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612180,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612180,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611455,\"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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611455,\"participants\":[{\"id\":997961,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997962,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.23,\"average_seconds_per_request\":0.23} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.27,\"average_seconds_per_request\":0.27} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611455,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611455,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611455,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611451,\"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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611451,\"participants\":[{\"id\":997955,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997956,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.25,\"average_seconds_per_request\":0.25} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:38] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.44,\"average_seconds_per_request\":0.44} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.16,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611087,\"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\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611087,\"participants\":[{\"id\":997368,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997369,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611087,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611087,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611087,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611076,\"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\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611076,\"participants\":[{\"id\":997346,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997347,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611076,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611076,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611076,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610935,\"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\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610935,\"participants\":[{\"id\":997141,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997142,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610935,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610935,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610935,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610915,\"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\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610915,\"participants\":[{\"id\":997104,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997105,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610915,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610915,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610915,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610900,\"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\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610900,\"participants\":[{\"id\":997081,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997082,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610900,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610900,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610900,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610885,\"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\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610885,\"participants\":[{\"id\":997051,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997052,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610885,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610885,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610885,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610878,\"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\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610878,\"participants\":[{\"id\":997035,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997036,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610878,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610878,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610878,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610874,\"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\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610874,\"participants\":[{\"id\":997025,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997026,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610874,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610874,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610874,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610867,\"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\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610867,\"participants\":[{\"id\":997011,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997012,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610867,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610867,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610867,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610764,\"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\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610764,\"participants\":[{\"id\":996951,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996952,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610764,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610764,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610764,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610617,\"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\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610617,\"participants\":[{\"id\":996641,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996642,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610617,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610617,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610617,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610539,\"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\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610539,\"participants\":[{\"id\":996485,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996486,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610539,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610539,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610539,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.4,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610528,\"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\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610528,\"participants\":[{\"id\":996463,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996464,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610528,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610528,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610528,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610506,\"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\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610506,\"participants\":[{\"id\":996419,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996420,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610506,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610506,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610506,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610497,\"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\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610497,\"participants\":[{\"id\":996401,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996402,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610497,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610497,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610497,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610490,\"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\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610490,\"participants\":[{\"id\":996385,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996386,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610490,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610490,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610490,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610470,\"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\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610470,\"participants\":[{\"id\":996369,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996370,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610470,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610470,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610470,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610462,\"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\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610462,\"participants\":[{\"id\":996353,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996354,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610462,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610462,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610462,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610451,\"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\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610451,\"participants\":[{\"id\":996340,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996341,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610438,\"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\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610438,\"participants\":[{\"id\":996320,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996321,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610438,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610438,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610438,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610426,\"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\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610426,\"participants\":[{\"id\":996306,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996307,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610426,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610426,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610426,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610403,\"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\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610403,\"participants\":[{\"id\":996282,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996283,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610403,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610403,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610403,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610400,\"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\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610400,\"participants\":[{\"id\":996275,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null},{\"id\":996276,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":996277,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":1460} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610400,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610400,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.51,\"average_seconds_per_request\":0.51} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.35,\"average_seconds_per_request\":0.35} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614382,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614382,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614382,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614381,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614381,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614381,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":615092,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":615092,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":615092,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614436,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614436,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614436,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nmalchev@gmail.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614378,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614378,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614378,\"remote_search\":true,\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.84,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:51] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.28,\"average_seconds_per_request\":0.28} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.43,\"average_seconds_per_request\":0.43} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612847,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612847,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612847,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612819,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612819,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:57] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.25,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:12] 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\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring start {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring end {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:21] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:10] 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\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring start {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring end {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:37] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:15\",\"to\":\"11:20\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:10\",\"to\":\"01:15\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:41] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:22:48.807561Z\"} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Auth] Requesting new client credentials token {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Auth] Successfully obtained new access token {\"expires_in\":1800,\"cached_for\":1500} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:54] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:59] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}","depth":4,"on_screen":true,"value":"[2026-05-11 11:17:21] local.NOTICE: Monitoring start {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:21] local.NOTICE: Monitoring end {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":1} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.0,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-d (truncated...)\n\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":5} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-e (truncated...)\n\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":16.99,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:08] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:10] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":4.14,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:19] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"5a640073-717d-40da-ad67-be02e37c56a2\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.24,\"average_seconds_per_request\":0.24} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.32,\"average_seconds_per_request\":0.32} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612562,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612562,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612562,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612561,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612561,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612560,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612560,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612560,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.89,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612360,\"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\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612360,\"participants\":[{\"id\":999552,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999553,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999565,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612360,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.29,\"average_seconds_per_request\":0.29} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612360,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612360,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612340,\"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\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612340,\"participants\":[{\"id\":999516,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999517,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999518,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999519,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612340,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.34,\"average_seconds_per_request\":0.34} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612340,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612340,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.75,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612339,\"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\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612339,\"participants\":[{\"id\":999514,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999515,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999540,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612339,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612339,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612339,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612336,\"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\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612336,\"participants\":[{\"id\":999508,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999509,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999512,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999513,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612336,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612336,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612336,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612183,\"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\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612183,\"participants\":[{\"id\":999227,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999228,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612183,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612183,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612183,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612182,\"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\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612182,\"participants\":[{\"id\":999225,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999226,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612182,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612182,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612182,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612181,\"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\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612181,\"participants\":[{\"id\":999223,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999224,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612181,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612181,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612181,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612180,\"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\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612180,\"participants\":[{\"id\":999221,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999222,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612180,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612180,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612180,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611455,\"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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611455,\"participants\":[{\"id\":997961,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997962,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.23,\"average_seconds_per_request\":0.23} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.27,\"average_seconds_per_request\":0.27} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611455,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611455,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611455,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611451,\"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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611451,\"participants\":[{\"id\":997955,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997956,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.25,\"average_seconds_per_request\":0.25} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:38] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.44,\"average_seconds_per_request\":0.44} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.16,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611087,\"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\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611087,\"participants\":[{\"id\":997368,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997369,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611087,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611087,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611087,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611076,\"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\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611076,\"participants\":[{\"id\":997346,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997347,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611076,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611076,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611076,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610935,\"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\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610935,\"participants\":[{\"id\":997141,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997142,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610935,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610935,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610935,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610915,\"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\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610915,\"participants\":[{\"id\":997104,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997105,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610915,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610915,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610915,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610900,\"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\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610900,\"participants\":[{\"id\":997081,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997082,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610900,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610900,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610900,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610885,\"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\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610885,\"participants\":[{\"id\":997051,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997052,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610885,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610885,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610885,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610878,\"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\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610878,\"participants\":[{\"id\":997035,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997036,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610878,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610878,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610878,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610874,\"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\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610874,\"participants\":[{\"id\":997025,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997026,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610874,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610874,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610874,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610867,\"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\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610867,\"participants\":[{\"id\":997011,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997012,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610867,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610867,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610867,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610764,\"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\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610764,\"participants\":[{\"id\":996951,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996952,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610764,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610764,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610764,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610617,\"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\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610617,\"participants\":[{\"id\":996641,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996642,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610617,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610617,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610617,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610539,\"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\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610539,\"participants\":[{\"id\":996485,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996486,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610539,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610539,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610539,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.4,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610528,\"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\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610528,\"participants\":[{\"id\":996463,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996464,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610528,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610528,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610528,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610506,\"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\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610506,\"participants\":[{\"id\":996419,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996420,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610506,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610506,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610506,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610497,\"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\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610497,\"participants\":[{\"id\":996401,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996402,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610497,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610497,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610497,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610490,\"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\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610490,\"participants\":[{\"id\":996385,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996386,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610490,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610490,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610490,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610470,\"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\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610470,\"participants\":[{\"id\":996369,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996370,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610470,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610470,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610470,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610462,\"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\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610462,\"participants\":[{\"id\":996353,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996354,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610462,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610462,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610462,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610451,\"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\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610451,\"participants\":[{\"id\":996340,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996341,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610438,\"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\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610438,\"participants\":[{\"id\":996320,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996321,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610438,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610438,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610438,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610426,\"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\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610426,\"participants\":[{\"id\":996306,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996307,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610426,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610426,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610426,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610403,\"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\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610403,\"participants\":[{\"id\":996282,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996283,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610403,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610403,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610403,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610400,\"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\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610400,\"participants\":[{\"id\":996275,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null},{\"id\":996276,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":996277,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":1460} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610400,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610400,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.51,\"average_seconds_per_request\":0.51} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.35,\"average_seconds_per_request\":0.35} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614382,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614382,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614382,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614381,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614381,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614381,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":615092,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":615092,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":615092,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614436,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614436,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614436,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nmalchev@gmail.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614378,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614378,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614378,\"remote_search\":true,\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.84,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:51] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.28,\"average_seconds_per_request\":0.28} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.43,\"average_seconds_per_request\":0.43} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612847,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612847,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612847,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612819,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612819,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:57] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.25,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:12] 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\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring start {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring end {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:21] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:10] 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\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring start {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring end {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:37] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:15\",\"to\":\"11:20\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:10\",\"to\":\"01:15\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:41] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:22:48.807561Z\"} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Auth] Requesting new client credentials token {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Auth] Successfully obtained new access token {\"expires_in\":1800,\"cached_for\":1500} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:54] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:59] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}","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}]...
|
3313799739692082153
|
6378616412482181476
|
idle
|
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
23/38
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
[2026-05-11 11:17:21] local.NOTICE: Monitoring start {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:21] local.NOTICE: Monitoring end {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:34] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:35] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":4} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":1} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activit...
|
18471
|
NULL
|
NULL
|
NULL
|
|
18496
|
NULL
|
0
|
2026-05-11T11:29:05.776311+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498945776_m2.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
True
|
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
23/38
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
[2026-05-11 11:17:21] local.NOTICE: Monitoring start {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:21] local.NOTICE: Monitoring end {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:34] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:35] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":4} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":1} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activit...
|
[{"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.37965426,"top":0.19952115,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"67","depth":4,"bounds":{"left":0.38962767,"top":0.19952115,"width":0.009973404,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"bounds":{"left":0.40159574,"top":0.19952115,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.4112367,"top":0.19792499,"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.41855052,"top":0.19792499,"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.42985374,"top":0.105347164,"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.4424867,"top":0.10454908,"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.45345744,"top":0.10454908,"width":0.043882977,"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.5063165,"top":0.10454908,"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.5162899,"top":0.10454908,"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.5249335,"top":0.10454908,"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.53357714,"top":0.10454908,"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":"23/38","depth":4,"bounds":{"left":0.5472075,"top":0.103751,"width":0.025598405,"height":0.017557861},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Occurrence","depth":4,"bounds":{"left":0.5728058,"top":0.10295291,"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.58144945,"top":0.10295291,"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.5900931,"top":0.10295291,"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.5987367,"top":0.10295291,"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.7250665,"top":0.10295291,"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":"AXTextArea","text":"[2026-05-11 11:17:21] local.NOTICE: Monitoring start {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:21] local.NOTICE: Monitoring end {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":1} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.0,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-d (truncated...)\n\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":5} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-e (truncated...)\n\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":16.99,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:08] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:10] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":4.14,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:19] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"5a640073-717d-40da-ad67-be02e37c56a2\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.24,\"average_seconds_per_request\":0.24} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.32,\"average_seconds_per_request\":0.32} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612562,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612562,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612562,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612561,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612561,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612560,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612560,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612560,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.89,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612360,\"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\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612360,\"participants\":[{\"id\":999552,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999553,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999565,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612360,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.29,\"average_seconds_per_request\":0.29} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612360,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612360,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612340,\"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\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612340,\"participants\":[{\"id\":999516,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999517,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999518,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999519,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612340,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.34,\"average_seconds_per_request\":0.34} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612340,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612340,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.75,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612339,\"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\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612339,\"participants\":[{\"id\":999514,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999515,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999540,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612339,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612339,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612339,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612336,\"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\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612336,\"participants\":[{\"id\":999508,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999509,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999512,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999513,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612336,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612336,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612336,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612183,\"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\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612183,\"participants\":[{\"id\":999227,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999228,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612183,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612183,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612183,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612182,\"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\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612182,\"participants\":[{\"id\":999225,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999226,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612182,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612182,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612182,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612181,\"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\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612181,\"participants\":[{\"id\":999223,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999224,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612181,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612181,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612181,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612180,\"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\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612180,\"participants\":[{\"id\":999221,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999222,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612180,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612180,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612180,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611455,\"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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611455,\"participants\":[{\"id\":997961,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997962,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.23,\"average_seconds_per_request\":0.23} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.27,\"average_seconds_per_request\":0.27} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611455,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611455,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611455,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611451,\"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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611451,\"participants\":[{\"id\":997955,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997956,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.25,\"average_seconds_per_request\":0.25} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:38] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.44,\"average_seconds_per_request\":0.44} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.16,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611087,\"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\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611087,\"participants\":[{\"id\":997368,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997369,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611087,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611087,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611087,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611076,\"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\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611076,\"participants\":[{\"id\":997346,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997347,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611076,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611076,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611076,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610935,\"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\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610935,\"participants\":[{\"id\":997141,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997142,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610935,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610935,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610935,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610915,\"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\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610915,\"participants\":[{\"id\":997104,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997105,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610915,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610915,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610915,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610900,\"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\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610900,\"participants\":[{\"id\":997081,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997082,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610900,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610900,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610900,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610885,\"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\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610885,\"participants\":[{\"id\":997051,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997052,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610885,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610885,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610885,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610878,\"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\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610878,\"participants\":[{\"id\":997035,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997036,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610878,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610878,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610878,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610874,\"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\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610874,\"participants\":[{\"id\":997025,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997026,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610874,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610874,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610874,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610867,\"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\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610867,\"participants\":[{\"id\":997011,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997012,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610867,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610867,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610867,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610764,\"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\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610764,\"participants\":[{\"id\":996951,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996952,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610764,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610764,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610764,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610617,\"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\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610617,\"participants\":[{\"id\":996641,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996642,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610617,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610617,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610617,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610539,\"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\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610539,\"participants\":[{\"id\":996485,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996486,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610539,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610539,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610539,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.4,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610528,\"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\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610528,\"participants\":[{\"id\":996463,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996464,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610528,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610528,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610528,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610506,\"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\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610506,\"participants\":[{\"id\":996419,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996420,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610506,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610506,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610506,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610497,\"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\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610497,\"participants\":[{\"id\":996401,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996402,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610497,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610497,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610497,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610490,\"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\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610490,\"participants\":[{\"id\":996385,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996386,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610490,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610490,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610490,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610470,\"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\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610470,\"participants\":[{\"id\":996369,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996370,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610470,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610470,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610470,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610462,\"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\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610462,\"participants\":[{\"id\":996353,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996354,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610462,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610462,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610462,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610451,\"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\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610451,\"participants\":[{\"id\":996340,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996341,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610438,\"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\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610438,\"participants\":[{\"id\":996320,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996321,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610438,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610438,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610438,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610426,\"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\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610426,\"participants\":[{\"id\":996306,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996307,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610426,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610426,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610426,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610403,\"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\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610403,\"participants\":[{\"id\":996282,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996283,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610403,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610403,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610403,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610400,\"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\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610400,\"participants\":[{\"id\":996275,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null},{\"id\":996276,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":996277,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":1460} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610400,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610400,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.51,\"average_seconds_per_request\":0.51} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.35,\"average_seconds_per_request\":0.35} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614382,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614382,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614382,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614381,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614381,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614381,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":615092,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":615092,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":615092,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614436,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614436,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614436,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nmalchev@gmail.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614378,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614378,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614378,\"remote_search\":true,\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.84,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:51] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.28,\"average_seconds_per_request\":0.28} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.43,\"average_seconds_per_request\":0.43} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612847,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612847,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612847,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612819,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612819,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:57] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.25,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:12] 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\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring start {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring end {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:21] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:10] 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\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring start {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring end {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:37] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:15\",\"to\":\"11:20\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:10\",\"to\":\"01:15\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:41] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:22:48.807561Z\"} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Auth] Requesting new client credentials token {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Auth] Successfully obtained new access token {\"expires_in\":1800,\"cached_for\":1500} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:54] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:59] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}","depth":4,"on_screen":true,"value":"[2026-05-11 11:17:21] local.NOTICE: Monitoring start {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:21] local.NOTICE: Monitoring end {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":1} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.0,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-d (truncated...)\n\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":5} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-e (truncated...)\n\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":16.99,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:08] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:10] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":4.14,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:19] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"5a640073-717d-40da-ad67-be02e37c56a2\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.24,\"average_seconds_per_request\":0.24} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.32,\"average_seconds_per_request\":0.32} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612562,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612562,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612562,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612561,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612561,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612560,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612560,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612560,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.89,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612360,\"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\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612360,\"participants\":[{\"id\":999552,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999553,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999565,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612360,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.29,\"average_seconds_per_request\":0.29} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612360,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612360,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612340,\"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\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612340,\"participants\":[{\"id\":999516,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999517,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999518,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999519,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612340,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.34,\"average_seconds_per_request\":0.34} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612340,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612340,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.75,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612339,\"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\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612339,\"participants\":[{\"id\":999514,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999515,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999540,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612339,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612339,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612339,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612336,\"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\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612336,\"participants\":[{\"id\":999508,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999509,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999512,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999513,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612336,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612336,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612336,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612183,\"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\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612183,\"participants\":[{\"id\":999227,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999228,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612183,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612183,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612183,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612182,\"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\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612182,\"participants\":[{\"id\":999225,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999226,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612182,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612182,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612182,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612181,\"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\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612181,\"participants\":[{\"id\":999223,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999224,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612181,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612181,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612181,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612180,\"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\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612180,\"participants\":[{\"id\":999221,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999222,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612180,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612180,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612180,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611455,\"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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611455,\"participants\":[{\"id\":997961,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997962,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.23,\"average_seconds_per_request\":0.23} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.27,\"average_seconds_per_request\":0.27} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611455,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611455,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611455,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611451,\"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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611451,\"participants\":[{\"id\":997955,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997956,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.25,\"average_seconds_per_request\":0.25} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:38] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.44,\"average_seconds_per_request\":0.44} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.16,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611087,\"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\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611087,\"participants\":[{\"id\":997368,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997369,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611087,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611087,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611087,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611076,\"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\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611076,\"participants\":[{\"id\":997346,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997347,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611076,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611076,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611076,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610935,\"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\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610935,\"participants\":[{\"id\":997141,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997142,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610935,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610935,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610935,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610915,\"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\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610915,\"participants\":[{\"id\":997104,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997105,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610915,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610915,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610915,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610900,\"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\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610900,\"participants\":[{\"id\":997081,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997082,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610900,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610900,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610900,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610885,\"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\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610885,\"participants\":[{\"id\":997051,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997052,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610885,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610885,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610885,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610878,\"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\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610878,\"participants\":[{\"id\":997035,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997036,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610878,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610878,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610878,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610874,\"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\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610874,\"participants\":[{\"id\":997025,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997026,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610874,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610874,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610874,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610867,\"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\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610867,\"participants\":[{\"id\":997011,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997012,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610867,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610867,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610867,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610764,\"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\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610764,\"participants\":[{\"id\":996951,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996952,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610764,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610764,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610764,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610617,\"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\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610617,\"participants\":[{\"id\":996641,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996642,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610617,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610617,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610617,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610539,\"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\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610539,\"participants\":[{\"id\":996485,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996486,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610539,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610539,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610539,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.4,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610528,\"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\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610528,\"participants\":[{\"id\":996463,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996464,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610528,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610528,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610528,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610506,\"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\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610506,\"participants\":[{\"id\":996419,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996420,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610506,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610506,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610506,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610497,\"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\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610497,\"participants\":[{\"id\":996401,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996402,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610497,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610497,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610497,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610490,\"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\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610490,\"participants\":[{\"id\":996385,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996386,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610490,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610490,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610490,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610470,\"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\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610470,\"participants\":[{\"id\":996369,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996370,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610470,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610470,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610470,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610462,\"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\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610462,\"participants\":[{\"id\":996353,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996354,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610462,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610462,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610462,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610451,\"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\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610451,\"participants\":[{\"id\":996340,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996341,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610438,\"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\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610438,\"participants\":[{\"id\":996320,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996321,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610438,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610438,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610438,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610426,\"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\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610426,\"participants\":[{\"id\":996306,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996307,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610426,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610426,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610426,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610403,\"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\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610403,\"participants\":[{\"id\":996282,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996283,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610403,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610403,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610403,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610400,\"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\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610400,\"participants\":[{\"id\":996275,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null},{\"id\":996276,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":996277,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":1460} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610400,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610400,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.51,\"average_seconds_per_request\":0.51} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.35,\"average_seconds_per_request\":0.35} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614382,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614382,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614382,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614381,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614381,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614381,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":615092,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":615092,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":615092,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614436,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614436,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614436,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nmalchev@gmail.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614378,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614378,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614378,\"remote_search\":true,\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.84,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:51] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.28,\"average_seconds_per_request\":0.28} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.43,\"average_seconds_per_request\":0.43} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612847,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612847,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612847,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612819,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612819,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:57] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.25,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:12] 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\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring start {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring end {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:21] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:10] 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\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring start {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring end {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:37] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:15\",\"to\":\"11:20\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:10\",\"to\":\"01:15\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:41] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:22:48.807561Z\"} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Auth] Requesting new client credentials token {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Auth] Successfully obtained new access token {\"expires_in\":1800,\"cached_for\":1500} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:54] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:59] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}","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},{"role":"AXButton","text":"New File or Directory…","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":"AXButton","text":"Expand Selected","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":"AXButton","text":"Collapse All","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":"AXButton","text":"Options","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":"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}]...
|
3313799739692082153
|
6378616412482181476
|
idle
|
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
23/38
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
[2026-05-11 11:17:21] local.NOTICE: Monitoring start {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:21] local.NOTICE: Monitoring end {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:34] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:35] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":4} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":1} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activit...
|
18472
|
NULL
|
NULL
|
NULL
|
|
18497
|
800
|
0
|
2026-05-11T11:29:31.449380+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498971449_m1.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
True
|
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
New Line
Preserve case
23/38
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
[2026-05-11 11:17:21] local.NOTICE: Monitoring start {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:21] local.NOTICE: Monitoring end {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:34] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:35] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":4} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":1} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activit...
|
[{"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},{"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":"23/38","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":"AXTextArea","text":"[2026-05-11 11:17:21] local.NOTICE: Monitoring start {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:21] local.NOTICE: Monitoring end {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":1} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.0,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-d (truncated...)\n\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":5} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-e (truncated...)\n\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":16.99,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:08] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:10] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":4.14,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:19] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"5a640073-717d-40da-ad67-be02e37c56a2\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.24,\"average_seconds_per_request\":0.24} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.32,\"average_seconds_per_request\":0.32} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612562,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612562,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612562,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612561,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612561,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612560,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612560,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612560,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.89,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612360,\"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\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612360,\"participants\":[{\"id\":999552,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999553,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999565,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612360,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.29,\"average_seconds_per_request\":0.29} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612360,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612360,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612340,\"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\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612340,\"participants\":[{\"id\":999516,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999517,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999518,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999519,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612340,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.34,\"average_seconds_per_request\":0.34} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612340,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612340,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.75,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612339,\"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\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612339,\"participants\":[{\"id\":999514,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999515,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999540,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612339,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612339,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612339,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612336,\"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\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612336,\"participants\":[{\"id\":999508,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999509,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999512,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999513,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612336,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612336,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612336,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612183,\"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\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612183,\"participants\":[{\"id\":999227,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999228,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612183,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612183,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612183,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612182,\"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\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612182,\"participants\":[{\"id\":999225,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999226,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612182,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612182,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612182,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612181,\"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\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612181,\"participants\":[{\"id\":999223,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999224,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612181,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612181,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612181,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612180,\"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\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612180,\"participants\":[{\"id\":999221,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999222,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612180,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612180,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612180,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611455,\"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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611455,\"participants\":[{\"id\":997961,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997962,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.23,\"average_seconds_per_request\":0.23} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.27,\"average_seconds_per_request\":0.27} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611455,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611455,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611455,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611451,\"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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611451,\"participants\":[{\"id\":997955,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997956,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.25,\"average_seconds_per_request\":0.25} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:38] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.44,\"average_seconds_per_request\":0.44} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.16,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611087,\"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\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611087,\"participants\":[{\"id\":997368,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997369,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611087,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611087,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611087,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611076,\"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\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611076,\"participants\":[{\"id\":997346,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997347,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611076,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611076,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611076,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610935,\"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\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610935,\"participants\":[{\"id\":997141,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997142,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610935,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610935,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610935,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610915,\"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\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610915,\"participants\":[{\"id\":997104,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997105,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610915,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610915,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610915,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610900,\"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\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610900,\"participants\":[{\"id\":997081,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997082,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610900,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610900,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610900,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610885,\"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\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610885,\"participants\":[{\"id\":997051,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997052,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610885,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610885,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610885,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610878,\"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\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610878,\"participants\":[{\"id\":997035,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997036,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610878,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610878,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610878,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610874,\"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\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610874,\"participants\":[{\"id\":997025,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997026,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610874,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610874,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610874,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610867,\"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\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610867,\"participants\":[{\"id\":997011,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997012,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610867,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610867,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610867,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610764,\"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\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610764,\"participants\":[{\"id\":996951,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996952,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610764,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610764,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610764,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610617,\"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\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610617,\"participants\":[{\"id\":996641,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996642,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610617,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610617,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610617,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610539,\"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\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610539,\"participants\":[{\"id\":996485,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996486,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610539,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610539,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610539,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.4,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610528,\"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\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610528,\"participants\":[{\"id\":996463,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996464,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610528,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610528,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610528,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610506,\"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\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610506,\"participants\":[{\"id\":996419,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996420,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610506,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610506,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610506,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610497,\"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\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610497,\"participants\":[{\"id\":996401,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996402,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610497,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610497,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610497,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610490,\"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\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610490,\"participants\":[{\"id\":996385,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996386,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610490,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610490,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610490,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610470,\"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\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610470,\"participants\":[{\"id\":996369,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996370,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610470,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610470,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610470,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610462,\"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\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610462,\"participants\":[{\"id\":996353,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996354,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610462,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610462,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610462,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610451,\"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\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610451,\"participants\":[{\"id\":996340,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996341,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610438,\"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\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610438,\"participants\":[{\"id\":996320,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996321,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610438,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610438,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610438,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610426,\"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\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610426,\"participants\":[{\"id\":996306,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996307,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610426,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610426,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610426,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610403,\"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\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610403,\"participants\":[{\"id\":996282,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996283,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610403,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610403,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610403,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610400,\"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\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610400,\"participants\":[{\"id\":996275,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null},{\"id\":996276,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":996277,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":1460} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610400,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610400,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.51,\"average_seconds_per_request\":0.51} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.35,\"average_seconds_per_request\":0.35} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614382,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614382,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614382,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614381,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614381,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614381,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":615092,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":615092,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":615092,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614436,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614436,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614436,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nmalchev@gmail.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614378,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614378,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614378,\"remote_search\":true,\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.84,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:51] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.28,\"average_seconds_per_request\":0.28} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.43,\"average_seconds_per_request\":0.43} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612847,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612847,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612847,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612819,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612819,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:57] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.25,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:12] 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\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring start {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring end {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:21] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:10] 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\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring start {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring end {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:37] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:15\",\"to\":\"11:20\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:10\",\"to\":\"01:15\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:41] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:22:48.807561Z\"} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Auth] Requesting new client credentials token {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Auth] Successfully obtained new access token {\"expires_in\":1800,\"cached_for\":1500} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:54] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:59] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}","depth":4,"on_screen":true,"value":"[2026-05-11 11:17:21] local.NOTICE: Monitoring start {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:21] local.NOTICE: Monitoring end {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":1} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.0,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-d (truncated...)\n\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":5} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-e (truncated...)\n\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":16.99,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:08] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:10] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":4.14,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:19] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"5a640073-717d-40da-ad67-be02e37c56a2\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.24,\"average_seconds_per_request\":0.24} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.32,\"average_seconds_per_request\":0.32} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612562,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612562,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612562,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612561,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612561,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612560,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612560,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612560,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.89,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612360,\"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\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612360,\"participants\":[{\"id\":999552,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999553,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999565,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612360,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.29,\"average_seconds_per_request\":0.29} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612360,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612360,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612340,\"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\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612340,\"participants\":[{\"id\":999516,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999517,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999518,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999519,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612340,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.34,\"average_seconds_per_request\":0.34} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612340,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612340,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.75,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612339,\"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\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612339,\"participants\":[{\"id\":999514,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999515,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999540,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612339,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612339,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612339,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612336,\"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\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612336,\"participants\":[{\"id\":999508,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999509,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999512,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999513,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612336,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612336,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612336,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612183,\"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\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612183,\"participants\":[{\"id\":999227,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999228,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612183,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612183,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612183,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612182,\"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\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612182,\"participants\":[{\"id\":999225,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999226,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612182,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612182,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612182,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612181,\"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\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612181,\"participants\":[{\"id\":999223,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999224,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612181,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612181,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612181,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612180,\"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\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612180,\"participants\":[{\"id\":999221,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999222,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612180,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612180,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612180,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611455,\"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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611455,\"participants\":[{\"id\":997961,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997962,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.23,\"average_seconds_per_request\":0.23} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.27,\"average_seconds_per_request\":0.27} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611455,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611455,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611455,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611451,\"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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611451,\"participants\":[{\"id\":997955,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997956,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.25,\"average_seconds_per_request\":0.25} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:38] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.44,\"average_seconds_per_request\":0.44} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.16,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611087,\"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\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611087,\"participants\":[{\"id\":997368,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997369,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611087,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611087,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611087,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611076,\"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\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611076,\"participants\":[{\"id\":997346,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997347,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611076,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611076,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611076,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610935,\"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\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610935,\"participants\":[{\"id\":997141,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997142,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610935,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610935,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610935,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610915,\"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\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610915,\"participants\":[{\"id\":997104,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997105,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610915,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610915,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610915,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610900,\"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\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610900,\"participants\":[{\"id\":997081,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997082,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610900,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610900,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610900,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610885,\"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\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610885,\"participants\":[{\"id\":997051,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997052,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610885,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610885,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610885,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610878,\"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\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610878,\"participants\":[{\"id\":997035,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997036,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610878,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610878,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610878,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610874,\"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\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610874,\"participants\":[{\"id\":997025,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997026,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610874,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610874,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610874,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610867,\"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\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610867,\"participants\":[{\"id\":997011,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997012,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610867,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610867,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610867,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610764,\"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\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610764,\"participants\":[{\"id\":996951,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996952,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610764,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610764,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610764,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610617,\"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\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610617,\"participants\":[{\"id\":996641,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996642,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610617,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610617,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610617,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610539,\"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\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610539,\"participants\":[{\"id\":996485,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996486,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610539,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610539,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610539,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.4,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610528,\"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\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610528,\"participants\":[{\"id\":996463,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996464,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610528,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610528,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610528,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610506,\"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\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610506,\"participants\":[{\"id\":996419,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996420,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610506,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610506,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610506,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610497,\"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\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610497,\"participants\":[{\"id\":996401,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996402,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610497,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610497,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610497,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610490,\"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\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610490,\"participants\":[{\"id\":996385,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996386,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610490,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610490,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610490,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610470,\"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\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610470,\"participants\":[{\"id\":996369,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996370,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610470,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610470,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610470,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610462,\"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\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610462,\"participants\":[{\"id\":996353,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996354,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610462,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610462,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610462,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610451,\"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\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610451,\"participants\":[{\"id\":996340,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996341,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610438,\"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\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610438,\"participants\":[{\"id\":996320,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996321,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610438,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610438,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610438,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610426,\"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\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610426,\"participants\":[{\"id\":996306,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996307,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610426,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610426,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610426,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610403,\"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\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610403,\"participants\":[{\"id\":996282,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996283,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610403,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610403,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610403,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610400,\"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\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610400,\"participants\":[{\"id\":996275,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null},{\"id\":996276,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":996277,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":1460} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610400,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610400,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.51,\"average_seconds_per_request\":0.51} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.35,\"average_seconds_per_request\":0.35} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614382,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614382,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614382,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614381,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614381,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614381,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":615092,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":615092,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":615092,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614436,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614436,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614436,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nmalchev@gmail.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614378,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614378,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614378,\"remote_search\":true,\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.84,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:51] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.28,\"average_seconds_per_request\":0.28} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.43,\"average_seconds_per_request\":0.43} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612847,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612847,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612847,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612819,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612819,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:57] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.25,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:12] 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\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring start {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring end {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:21] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:10] 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\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring start {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring end {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:37] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:15\",\"to\":\"11:20\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:10\",\"to\":\"01:15\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:41] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:22:48.807561Z\"} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Auth] Requesting new client credentials token {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Auth] Successfully obtained new access token {\"expires_in\":1800,\"cached_for\":1500} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:54] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:59] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}","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}]...
|
3313799739692082153
|
6378616412482181476
|
idle
|
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
23/38
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
[2026-05-11 11:17:21] local.NOTICE: Monitoring start {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:21] local.NOTICE: Monitoring end {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:34] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:35] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":4} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":1} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activit...
|
18471
|
NULL
|
NULL
|
NULL
|
|
18498
|
801
|
0
|
2026-05-11T11:29:36.200056+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498976200_m2.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
True
|
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
23/38
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
[2026-05-11 11:17:21] local.NOTICE: Monitoring start {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:21] local.NOTICE: Monitoring end {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:34] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:35] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":4} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":1} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activit...
|
[{"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.37965426,"top":0.19952115,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"67","depth":4,"bounds":{"left":0.38962767,"top":0.19952115,"width":0.009973404,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"bounds":{"left":0.40159574,"top":0.19952115,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.4112367,"top":0.19792499,"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.41855052,"top":0.19792499,"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.42985374,"top":0.105347164,"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.4424867,"top":0.10454908,"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.45345744,"top":0.10454908,"width":0.043882977,"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.5063165,"top":0.10454908,"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.5162899,"top":0.10454908,"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.5249335,"top":0.10454908,"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.53357714,"top":0.10454908,"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":"23/38","depth":4,"bounds":{"left":0.5472075,"top":0.103751,"width":0.025598405,"height":0.017557861},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Occurrence","depth":4,"bounds":{"left":0.5728058,"top":0.10295291,"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.58144945,"top":0.10295291,"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.5900931,"top":0.10295291,"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.5987367,"top":0.10295291,"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.7250665,"top":0.10295291,"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":"AXTextArea","text":"[2026-05-11 11:17:21] local.NOTICE: Monitoring start {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:21] local.NOTICE: Monitoring end {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":1} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.0,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-d (truncated...)\n\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":5} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-e (truncated...)\n\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":16.99,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:08] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:10] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":4.14,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:19] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"5a640073-717d-40da-ad67-be02e37c56a2\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.24,\"average_seconds_per_request\":0.24} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.32,\"average_seconds_per_request\":0.32} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612562,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612562,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612562,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612561,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612561,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612560,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612560,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612560,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.89,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612360,\"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\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612360,\"participants\":[{\"id\":999552,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999553,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999565,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612360,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.29,\"average_seconds_per_request\":0.29} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612360,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612360,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612340,\"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\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612340,\"participants\":[{\"id\":999516,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999517,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999518,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999519,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612340,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.34,\"average_seconds_per_request\":0.34} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612340,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612340,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.75,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612339,\"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\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612339,\"participants\":[{\"id\":999514,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999515,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999540,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612339,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612339,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612339,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612336,\"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\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612336,\"participants\":[{\"id\":999508,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999509,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999512,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999513,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612336,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612336,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612336,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612183,\"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\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612183,\"participants\":[{\"id\":999227,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999228,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612183,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612183,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612183,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612182,\"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\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612182,\"participants\":[{\"id\":999225,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999226,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612182,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612182,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612182,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612181,\"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\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612181,\"participants\":[{\"id\":999223,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999224,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612181,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612181,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612181,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612180,\"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\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612180,\"participants\":[{\"id\":999221,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999222,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612180,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612180,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612180,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611455,\"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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611455,\"participants\":[{\"id\":997961,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997962,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.23,\"average_seconds_per_request\":0.23} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.27,\"average_seconds_per_request\":0.27} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611455,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611455,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611455,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611451,\"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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611451,\"participants\":[{\"id\":997955,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997956,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.25,\"average_seconds_per_request\":0.25} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:38] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.44,\"average_seconds_per_request\":0.44} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.16,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611087,\"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\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611087,\"participants\":[{\"id\":997368,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997369,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611087,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611087,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611087,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611076,\"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\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611076,\"participants\":[{\"id\":997346,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997347,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611076,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611076,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611076,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610935,\"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\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610935,\"participants\":[{\"id\":997141,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997142,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610935,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610935,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610935,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610915,\"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\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610915,\"participants\":[{\"id\":997104,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997105,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610915,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610915,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610915,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610900,\"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\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610900,\"participants\":[{\"id\":997081,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997082,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610900,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610900,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610900,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610885,\"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\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610885,\"participants\":[{\"id\":997051,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997052,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610885,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610885,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610885,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610878,\"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\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610878,\"participants\":[{\"id\":997035,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997036,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610878,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610878,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610878,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610874,\"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\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610874,\"participants\":[{\"id\":997025,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997026,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610874,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610874,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610874,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610867,\"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\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610867,\"participants\":[{\"id\":997011,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997012,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610867,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610867,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610867,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610764,\"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\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610764,\"participants\":[{\"id\":996951,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996952,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610764,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610764,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610764,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610617,\"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\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610617,\"participants\":[{\"id\":996641,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996642,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610617,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610617,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610617,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610539,\"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\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610539,\"participants\":[{\"id\":996485,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996486,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610539,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610539,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610539,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.4,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610528,\"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\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610528,\"participants\":[{\"id\":996463,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996464,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610528,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610528,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610528,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610506,\"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\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610506,\"participants\":[{\"id\":996419,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996420,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610506,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610506,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610506,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610497,\"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\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610497,\"participants\":[{\"id\":996401,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996402,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610497,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610497,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610497,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610490,\"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\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610490,\"participants\":[{\"id\":996385,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996386,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610490,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610490,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610490,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610470,\"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\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610470,\"participants\":[{\"id\":996369,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996370,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610470,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610470,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610470,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610462,\"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\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610462,\"participants\":[{\"id\":996353,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996354,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610462,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610462,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610462,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610451,\"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\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610451,\"participants\":[{\"id\":996340,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996341,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610438,\"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\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610438,\"participants\":[{\"id\":996320,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996321,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610438,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610438,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610438,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610426,\"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\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610426,\"participants\":[{\"id\":996306,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996307,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610426,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610426,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610426,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610403,\"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\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610403,\"participants\":[{\"id\":996282,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996283,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610403,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610403,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610403,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610400,\"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\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610400,\"participants\":[{\"id\":996275,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null},{\"id\":996276,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":996277,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":1460} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610400,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610400,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.51,\"average_seconds_per_request\":0.51} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.35,\"average_seconds_per_request\":0.35} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614382,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614382,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614382,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614381,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614381,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614381,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":615092,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":615092,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":615092,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614436,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614436,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614436,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nmalchev@gmail.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614378,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614378,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614378,\"remote_search\":true,\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.84,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:51] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.28,\"average_seconds_per_request\":0.28} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.43,\"average_seconds_per_request\":0.43} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612847,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612847,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612847,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612819,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612819,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:57] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.25,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:12] 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\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring start {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring end {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:21] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:10] 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\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring start {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring end {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:37] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:15\",\"to\":\"11:20\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:10\",\"to\":\"01:15\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:41] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:22:48.807561Z\"} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Auth] Requesting new client credentials token {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Auth] Successfully obtained new access token {\"expires_in\":1800,\"cached_for\":1500} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:54] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:59] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}","depth":4,"on_screen":true,"value":"[2026-05-11 11:17:21] local.NOTICE: Monitoring start {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:21] local.NOTICE: Monitoring end {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] 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\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":1} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] 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\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.0,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] 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\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-d (truncated...)\n\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":5} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] 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\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"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\\\":\\\"019e16c1-e (truncated...)\n\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] 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\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] 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\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] 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\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] 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\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] 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\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] 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\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":16.99,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] 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\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:08] 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\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:10] 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\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":4.14,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] 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\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] 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\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:19] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"5a640073-717d-40da-ad67-be02e37c56a2\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] 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\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.24,\"average_seconds_per_request\":0.24} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.32,\"average_seconds_per_request\":0.32} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612562,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612562,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612562,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612561,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612561,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] 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\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612560,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612560,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612560,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.89,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] 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\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] 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\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] 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\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] 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\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612360,\"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\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612360,\"participants\":[{\"id\":999552,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999553,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999565,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612360,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.29,\"average_seconds_per_request\":0.29} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612360,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612360,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612340,\"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\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612340,\"participants\":[{\"id\":999516,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999517,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999518,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999519,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612340,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.34,\"average_seconds_per_request\":0.34} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612340,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612340,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.75,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612339,\"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\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612339,\"participants\":[{\"id\":999514,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999515,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999540,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612339,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612339,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612339,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612336,\"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\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612336,\"participants\":[{\"id\":999508,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999509,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999512,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999513,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612336,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612336,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612336,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612183,\"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\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612183,\"participants\":[{\"id\":999227,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999228,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612183,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612183,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612183,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612182,\"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\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612182,\"participants\":[{\"id\":999225,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999226,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612182,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612182,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612182,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612181,\"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\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612181,\"participants\":[{\"id\":999223,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999224,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612181,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612181,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612181,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612180,\"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\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612180,\"participants\":[{\"id\":999221,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999222,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612180,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612180,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612180,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611455,\"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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611455,\"participants\":[{\"id\":997961,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997962,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.23,\"average_seconds_per_request\":0.23} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.27,\"average_seconds_per_request\":0.27} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611455,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611455,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611455,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611451,\"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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611451,\"participants\":[{\"id\":997955,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997956,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.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\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.25,\"average_seconds_per_request\":0.25} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:38] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.44,\"average_seconds_per_request\":0.44} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.16,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611087,\"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\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611087,\"participants\":[{\"id\":997368,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997369,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611087,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611087,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611087,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611076,\"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\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611076,\"participants\":[{\"id\":997346,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997347,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611076,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611076,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611076,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610935,\"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\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610935,\"participants\":[{\"id\":997141,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997142,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610935,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610935,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610935,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610915,\"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\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610915,\"participants\":[{\"id\":997104,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997105,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610915,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610915,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610915,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610900,\"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\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610900,\"participants\":[{\"id\":997081,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997082,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610900,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610900,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610900,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610885,\"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\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610885,\"participants\":[{\"id\":997051,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997052,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610885,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610885,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610885,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610878,\"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\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610878,\"participants\":[{\"id\":997035,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997036,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610878,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610878,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610878,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610874,\"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\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610874,\"participants\":[{\"id\":997025,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997026,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610874,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610874,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610874,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610867,\"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\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610867,\"participants\":[{\"id\":997011,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997012,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610867,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610867,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610867,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610764,\"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\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610764,\"participants\":[{\"id\":996951,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996952,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610764,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610764,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610764,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610617,\"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\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610617,\"participants\":[{\"id\":996641,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996642,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610617,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610617,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610617,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610539,\"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\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610539,\"participants\":[{\"id\":996485,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996486,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610539,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610539,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610539,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.4,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610528,\"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\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610528,\"participants\":[{\"id\":996463,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996464,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610528,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610528,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610528,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610506,\"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\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610506,\"participants\":[{\"id\":996419,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996420,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610506,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610506,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610506,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610497,\"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\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610497,\"participants\":[{\"id\":996401,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996402,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610497,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610497,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610497,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610490,\"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\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610490,\"participants\":[{\"id\":996385,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996386,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610490,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610490,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610490,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610470,\"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\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610470,\"participants\":[{\"id\":996369,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996370,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610470,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610470,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610470,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610462,\"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\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610462,\"participants\":[{\"id\":996353,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996354,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610462,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610462,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610462,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610451,\"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\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610451,\"participants\":[{\"id\":996340,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996341,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610438,\"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\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610438,\"participants\":[{\"id\":996320,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996321,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610438,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610438,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610438,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610426,\"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\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610426,\"participants\":[{\"id\":996306,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996307,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610426,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610426,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610426,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610403,\"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\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610403,\"participants\":[{\"id\":996282,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996283,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610403,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610403,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610403,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610400,\"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\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610400,\"participants\":[{\"id\":996275,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null},{\"id\":996276,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":996277,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":1460} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610400,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610400,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.51,\"average_seconds_per_request\":0.51} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.35,\"average_seconds_per_request\":0.35} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614382,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614382,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614382,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614381,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614381,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614381,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":615092,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":615092,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":615092,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614436,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614436,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614436,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nmalchev@gmail.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614378,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614378,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614378,\"remote_search\":true,\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.84,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:51] 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\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.28,\"average_seconds_per_request\":0.28} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.43,\"average_seconds_per_request\":0.43} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612847,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612847,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612847,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] 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}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] 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}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612819,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612819,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:57] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.25,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] 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\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:12] 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\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring start {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring end {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:21] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] 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\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:10] 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\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring start {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring end {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:37] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:15\",\"to\":\"11:20\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:10\",\"to\":\"01:15\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:41] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:22:48.807561Z\"} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Auth] Requesting new client credentials token {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Auth] Successfully obtained new access token {\"expires_in\":1800,\"cached_for\":1500} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:54] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:59] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}","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},{"role":"AXButton","text":"New File or Directory…","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":"AXButton","text":"Expand Selected","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":"AXButton","text":"Collapse All","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":"AXButton","text":"Options","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":"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}]...
|
3313799739692082153
|
6378616412482181476
|
idle
|
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
23/38
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
[2026-05-11 11:17:21] local.NOTICE: Monitoring start {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:21] local.NOTICE: Monitoring end {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:34] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:35] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":4} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] 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":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":1} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"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\":\"019e16c1-c (truncated...)
"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] 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":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activit...
|
18472
|
NULL
|
NULL
|
NULL
|
|
18565
|
NULL
|
0
|
2026-05-11T11:34:23.105714+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778499263105_m2.jpg...
|
PhpStorm
|
faVsco.js – HandleHubspotRateLimit.php
|
True
|
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
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Show Replace Field
Search History
429
New Line
Match Case
Words
Regex
Replace History
Replace
New Line
Preserve case
23/38
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close...
|
[{"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.40226063,"top":0.19952115,"width":0.00731383,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.4112367,"top":0.19792499,"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.41855052,"top":0.19792499,"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\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\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.42985374,"top":0.105347164,"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.4424867,"top":0.10454908,"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.45345744,"top":0.10454908,"width":0.043882977,"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.5063165,"top":0.10454908,"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.5162899,"top":0.10454908,"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.5249335,"top":0.10454908,"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.53357714,"top":0.10454908,"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":"23/38","depth":4,"bounds":{"left":0.5472075,"top":0.103751,"width":0.025598405,"height":0.017557861},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Occurrence","depth":4,"bounds":{"left":0.5728058,"top":0.10295291,"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.58144945,"top":0.10295291,"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.5900931,"top":0.10295291,"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.5987367,"top":0.10295291,"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.7250665,"top":0.10295291,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-8586334147251649232
|
-8461117008444836534
|
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
1
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Show Replace Field
Search History
429
New Line
Match Case
Words
Regex
Replace History
Replace
New Line
Preserve case
23/38
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close...
|
18564
|
NULL
|
NULL
|
NULL
|
|
18566
|
NULL
|
0
|
2026-05-11T11:34:23.164918+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778499263164_m1.jpg...
|
PhpStorm
|
faVsco.js – HandleHubspotRateLimit.php
|
True
|
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...
|
[{"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}]...
|
-3367139436975185842
|
-8780819654538876030
|
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
iTerm2ShellEditViewSessionScriptsProfilesWindowHelpPreparation for Refi... in 26 m100% <78• Mon 11 May 14:34:23181DEV (docker)-zshDOCKER-₴81DEV (docker)$2APP (-zsh)*3compiledeventsroutesviewsJiminny-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-audio:worker-audio_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:worker_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-emails:worker-emails_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"1.79ms DONE2.06ms DONE0.85ms DONE4.12ms DONE-zsh+DEV...
|
18561
|
NULL
|
NULL
|
NULL
|